Properties-Dateien anwenden

Status
Nicht offen für weitere Antworten.

sven-ber

Mitglied
Hallo zusammen,

Ich versuche gerade in Properties-Dateien sprachabhängige Zeichenketten persistent zu speichern. Ich verwende Eclipse 3.4

Mein Problem ist folgendes: Beim Compiliieren der Java-Dateien werden alle Class-Dateien in das Bin-Verzeichnis geschrieben. Mit Ausnahme der Properties-Dateien. Ich muss dazu sagen, dass momentan meine Properties-Dateien im root-Verzeichnis liegen. Was mache ich falsch?

Kann ich die Properties-Dateien nicht auch direkt im Java-Projekt in ein Verzeichnis legen?

Gruß

Sven-ber
 
Nein, die sollten im Classpath (also einem source Folder) liegen. Mach dir einfach ein resources, oder /src/resources und deklariere es als zusätzlichen Source Folder.
 
Servus,

Ich denke, das Projektverzeichnis selbst ist immer im Classpath. Ich hab meine .properties files direkt im Projektverzeichnis liegen, und die werden dort auch ganz normal gefunden.

Die werden bei dir nicht gefunden? Oder auf was konkret bezieht sich deine Aussage?

--qu
 
Hallo Wildcard,

ich habe es gerade versucht anzuwenden. Aber irgendwie funktioniert es noch nicht.

Ich habe so wie du geschrieben hast im src ordner ein resources Ordner angelegt. Darin liegen nun alle properties-Dateien.
Unter den Projekt-Properties -> Run/Debug Settings habe ich meine Main-Settings editiert. Im Configuration-Fenster habe ich
den Tab Source gewählt und darin über Add... ein neues "File System Directory" auf mein resources-Ordner erzeugt.

Was mache ich falsch?

Gruß

Sven-ber
 
Projekt > src > path > to > resources > locals.properties

Java:
Properties props = new Properties();
props.load(getClass().getResourceAsStream("/path/to/resources/locals.properties"));
 
So ... jetzt funktioniert gar nichts mehr

Ich beschreib euch einfach noch einmal detailliert wie mein projekt aussieht und frag euch danach wie ihr das lösen würdet.

Die Ordner-Hierarchie sieht so aus:
/src/periphery/
/src/resources/

Im resources-Ordner befinden sich 3 Propertie-Dateien: Labels.properties, Labels_en.properties und Labels_de.properties
Sie dienen dazu, um die Labels meiner GUI zwischen den beiden Sprachen einfach tauschen kann.

Im periphery-Ordner befindet sich ein Klasse LocaleText.java. Sie greift mit ResourceBoundle direkt auf die 3 Properties-Dateien zu.
Java:
package periphery;

import java.util.Locale;
import java.util.ResourceBundle;

public class LocaleText {

	private ResourceBundle bundle = null;
	private String baseName = null;
	
	public LocaleText(String baseName, Locale currentLocale){
		
		this.baseName = "/resources/"+baseName;
		this.bundle = ResourceBundle.getBundle(baseName, currentLocale);	
		
	}
	
	public void setLocale(Locale currentLocale){
		this.bundle = ResourceBundle.getBundle(this.baseName, currentLocale);
	}
	
	/**
	 * Method to read out the property of a specific key and returns it.
	 * The Locale is allready defined
	 * @param key - key string to identify the label
	 * @return - labelname
	 */
	public String getLabel(String key){
		return this.bundle.getString(key);
	}
}

Ich sehe im Moment 2 Problem:
1. Meine Klasse findet die properties-Dateien nicht im Ordner resources
2. Beim Compilieren werden die properties-Dateien nicht in den bin-Ordner übernommen.

Könnt ihr mir bitte erklären wie das funktioniert? ... Ich muss gestehen ich habe damit noch nie gearbeitet und ClassPath-Variablen setzen habe ich bis vor wenigen Stunden schon des öfteren bei Eclipse gesucht aber nie gefunden.

Bitte um Hilfe
 
Wenn resources ein Source folder ist, dann ist /resources nicht Teil des Pfades den du in getResource angibst. Wie sehen zur Zeit deine Source Folder aus?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben