jar und getResourceStream... in jar schreiben?

Hallo,

ich habe ein jar erstellt. Mein Programm greift jedoch auf ein Property-File zu. Das lesen funktioniert mit getResourceStream(path/filename), das schreiben allerdings nicht (Fehler bei properties.setProperty(key, value)). Kann man Dateien in einem jar überhaupt überschreiben/editieren?
Falls nein, wie geht man am besten vor? Ich möchte ja irgendwo lokal die Properties abspeichern, so daß ich sie immer wieder finde (bzw. wieder laden kann). Vielleicht in der userdir? Jemand eine Idee?
 
Du kannst auf jeden Fall zu einem Jar neue Dateien hinzufügen bzw. aktualisieren (ähnlich wie Zips).

Für Deinen Anwendungsfall finde ich diese Praxis allerdings nicht so toll.

Ich würde im JAR eine Properties-Datei mit den Voreinstellungen ablegen, auf die immer dann zurückgegriffen wird, wenn die benutzerdefinierte Properties-Datei noch nicht existiert oder vielleicht gelöscht wurde. Diese benutzerdefinierte Datei könntest Du im Standardpfad des Users anlegen (= unschön) oder in irgendeinem Verzeichnis Deiner Anwendung (= ideal), separat vom JAR.

P.S.: Die Wertung in Klammern ist meine persönliche Meinung, denn ich mag Programme, die komplett "weg" sind, wenn man deren Verzeichnis löscht und nicht irgendwo noch irgendwelche Artifakte "versteckt" haben... ("Speicherfresser")
 
Danke. :)
Habs nun auch so gemacht. Die properties Datei wird, falls nicht vorhanden, im verzeichnis des Programms generiert. Bei einer zweiten, benötigten xml-datei, die übers netz upgedated werden soll, hab ich eine default als resource definiert und lade diese, falls die neuere (aus dem netz) (noch) nicht runtergeladen wurde.
War sehr knifflig, aber nun läufts endlich :)
 
HI Rick Dangerous;

ich wollte mal das gleiche machen mit dem editorieren einer jar datei. Habe es leider nicht hinbekommen. Wäre nett wenn du mal ein beispiel bringst wie du das machst.

Mfg mrno
 
Zurück