# Peristenz in JAR möglich?



## Rudolf (7. Feb 2011)

Hi,

ich programmiere gerade ein komplexes Softwareprojekt und dort sollen diverse Einstellungen möglich sein. Die Frage, die ich mir gerade stelle, ist, ob es möglich ist, dass das Programm nach seiner Exportierung in das Dateiformat JAR fähig ist Konfigurationsdatei in sich selber zu schreiben.

D.h. ich öffne mein Programm über JAR und stelle etwas ein. Kann das Programm in sich selber (JAR ist ja nur ein Archivoformat) eine Textdatei erstellen, die beim nächsten Programmstart berücksichtigt wird.

Wenn ja wie geht das am besten. Gibts Workarounds?


----------



## schulhaus (7. Feb 2011)

Hallo Rudolf

Normalerweise lagert man nicht statische Konfigurationen aus dem Programm aus. So hab ich das zumindest bisher aufgefasst. 
Technisch ist es sehr wohl möglich, dass ein Javaprogramm Jar-Archive modifiziert. Dies sind ja schlussendlich nichts anderes als ZIP-Archive. Während der Laufzeit jedoch eher nicht.

Was spricht dagegen, die Konfiguration auszulagern?

Viele Grüsse


----------



## tfa (7. Feb 2011)

Konfigurationsdaten, die sich ändern, gehören nicht ins JAR. Unter Windows stelle ich es mir schwierig vor, Dateien, die in Benutzung sind, zu verändern.
Sind denn die Einstellungen benutzerspezifisch? Wenn ja, schreib einfach eine Konfig-Datei in das jeweilige User-Verzeichnis.


----------



## Rudolf (7. Feb 2011)

Welcher Befehl ist nötig, damit eine Datei im Verzeichnis erstellt wird wie die JAR?

Und in welchem Format soll die Konfigurationsdatei gespeichert werden?

Gibts ein paar gute Beispiele?


----------



## schulhaus (7. Feb 2011)

Das Dateiformat für die Konfiguration würde ich wie gewohnt wählen. 

Beispiele dazu gibt es im Netz einige: Compress files using the Java ZIP API : File CommandsFile Input OutputJava

Nach wie vor würde ich dir empfehlen die Konfiguration auszulagern.


----------



## Rudolf (7. Feb 2011)

Ich finds geil.

Ich frage welches Dateiformat Konfigurationsdateien haben sollen und bekomme als Antwort:



> Das Dateiformat für die Konfiguration würde ich wie gewohnt wählen.



?!?! Bin ich der einzige, der einen logischen Zusammenhang vermisst?


----------



## L-ectron-X (7. Feb 2011)

Rudolf hat gesagt.:


> ...frage welches Dateiformat Konfigurationsdateien haben sollen...


So was kann man mit Properties machen.


----------



## Gast2 (7. Feb 2011)

Properties, XML, ini-Format, eigenes Format - was dir halt schmeckt.


----------



## fastjack (7. Feb 2011)

> Ich frage welches Dateiformat Konfigurationsdateien haben sollen und bekomme als Antwort:


mit wie gewohnt meint er whl.: XML, Properties, INI, Serialisiertes Config-Objekt, Java-Preferences oder ...

* XML kannst Du z.B. mit JAXB, EMF, per Hand (StringBuilder) oder per DocumentBuilder erstellen
* Properties, noch einfacher, mit der Properties-Klasse aus Java direkt
* INI z.B: => Commons Configuration - Java Configuration API
* serialisiertes Config-Objekt => Serialisierung kennste ja inzwischen
* Java-Preferences => Preferences (Java 2 Platform SE v1.4.2)


----------

