Hi Leute
Ich hab da ein kleines Problem, bei dem ich nicht auf die Lösung komme.
Die Software die ich schreibe bezieht alle Einstellungen aus einem global settings.properties File welches sich im Order src im package settings befindet.
Wenn diese Einstellungen im Programm geändert werden, sollen diese natürlich im File gespeichert werden. Dafür habe ich eine Klasse SettingsObject geschrieben, welche einen Adapter für diese Properties files darstellt. Diese ist folgendermassen aufgebaut:
Das problem liegt in der save Funktion. Wenn diese aufgerufen wird, wird zwar keine Exception geworfen, aber es wird nicht in das von mir angegebene File "settings/settings.properties", welches sich im src ordner befindet, geschrieben, sondern ein neues File erstellt, welches sich zwar auf dem selben Pfad befindet, aber eben nicht im src-Ordner, sondern direkt im root.
Die Applikation soll sich später komplett in einem .jar packet befinden, deshalb das File im src-Ordner...
Wie krieg ich es jetzt hin, dass er sich nur auf das File im src-ordner bezieht? Wenn ich das File im src ordner lesen will, ist das ja folgendermassen möglich:
Hat wer ne Idee dazu, oder ist das überhaupt möglich? Gerade wenn man die Situation nach der Entwicklung betrachtet, wenn sich alle Files im Jar befinden. Könnte ich ein settings.properties File in diesem Jar nachträglich über die Applikation bearbeiten, oder ist das gar nicht möglich, ev wegen mangelden schreibrechten oder so?
Greez
Kjatar
Ich hab da ein kleines Problem, bei dem ich nicht auf die Lösung komme.
Die Software die ich schreibe bezieht alle Einstellungen aus einem global settings.properties File welches sich im Order src im package settings befindet.
Wenn diese Einstellungen im Programm geändert werden, sollen diese natürlich im File gespeichert werden. Dafür habe ich eine Klasse SettingsObject geschrieben, welche einen Adapter für diese Properties files darstellt. Diese ist folgendermassen aufgebaut:
Code:
public class SettingsObject {
protected Properties props = new Properties();
private String filePath = null;
public String getProperty(String key)
public void setProperty(String key, String value)
public void save() {
try {
FileOutputStream fos = new FileOutputStream(filePath);
this.props.store(fos, "");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public SettingsObject(String settingsPath)
}
Das problem liegt in der save Funktion. Wenn diese aufgerufen wird, wird zwar keine Exception geworfen, aber es wird nicht in das von mir angegebene File "settings/settings.properties", welches sich im src ordner befindet, geschrieben, sondern ein neues File erstellt, welches sich zwar auf dem selben Pfad befindet, aber eben nicht im src-Ordner, sondern direkt im root.
Die Applikation soll sich später komplett in einem .jar packet befinden, deshalb das File im src-Ordner...
Wie krieg ich es jetzt hin, dass er sich nur auf das File im src-ordner bezieht? Wenn ich das File im src ordner lesen will, ist das ja folgendermassen möglich:
Code:
SettingsObject.class.getClassLoader().getRessourceAsStream("settings/settings.properties");
Hat wer ne Idee dazu, oder ist das überhaupt möglich? Gerade wenn man die Situation nach der Entwicklung betrachtet, wenn sich alle Files im Jar befinden. Könnte ich ein settings.properties File in diesem Jar nachträglich über die Applikation bearbeiten, oder ist das gar nicht möglich, ev wegen mangelden schreibrechten oder so?
Greez
Kjatar