# Installationsroutine für eigenes Java-Programm



## Professor Chaos (12. Jun 2008)

Hi,

ich habe eine Frage zur prinzipiellen Vorgehensweise.

das Problem:
Ich möchte mein Programm (Jar-Datei) "installieren", also diverse Routinen ausführen lassen, die nur beim ersten Programmstart notwändig sind, danach aber nicht mehr. Beispielsweise soll eine Alert-Box mit einer Erklärung geöffnet werden, aber eben nur beim ersten Programmstart, später niemals wieder. Auch sollen Pfade gesetzt werden, und und und. Meine Frage ist, wie ich das am edelsten realisiere, da ich mir sicher bin, dass das ein normales Problem ist und ich dieses gerne so lösen würde, wie es "die Konvention" vorsieht.


meine Lösungsidee:
Eines vorweg: Die folgende Idee ist NUR meine erste Idee, wer weiß, wie man mein Problem "normalerweise" löst, soll mir das bitte näher bringen (darum ja auch der Post).
Nehmen wir an, mein "normales" Programm verwendet die Klassen "class1", "class2" und "class3". Nehmen wir weiter an, dass alle Routinen, die NUR beim ersten Programmstart ausgeführt werden sollen, in "class4" stecken.
Meine Idee war also, eine Jar-Datei mit dem Namen "install.jar" anzulegen, die bei Ausführung die Klasse "class4" auführt, danach die Jar-Datei "program.jar" in einen vom Benutzer angegeben Ordner kopiert, welche die Dateien "class1" bis "class3" beinhaltet. Danach soll "install.jar" wieder gelsöcht werden.
Im Prinzip löst meine Idee zwar mein Problem, aber es ergeben sich folgende Probleme: (wegen dieser Probleme habe ich diese Idee nicht umgesetzt):
- ich kann die Jar-Datei "install.jar" höchstwahrscheinlich gar nicht löschen, da der Befehl des Löschens ja gerade von dieser Jar-Datei ausgeführt wird. Ein Staubsauger kann sich ja auch nicht selbst aufsaugen.
- Ich müsste in die Jar-Datei "install.jar" auch die Jar-Datei "program.jar" reinpacken, was automatisiert ja garnicht möglich ist. Lasse ich mein Jar-Archiv nämlich automatisch erstellen, gibt es nur EINE jar, in welcher alle vier Klassen drinstecken.

Ich gehe daher davon aus, dass meine Idee Müll ist^^
Wie geht man normalerweise vor?


----------



## PELLE (12. Jun 2008)

Professor Chaos hat gesagt.:
			
		

> das Problem:
> Ich möchte mein Programm (Jar-Datei) "installieren", also diverse Routinen ausführen lassen, die nur beim ersten Programmstart notwändig sind, danach aber nicht mehr. Beispielsweise soll eine Alert-Box mit einer Erklärung geöffnet werden, aber eben nur beim ersten Programmstart, später niemals wieder. Auch sollen Pfade gesetzt werden, und und und. Meine Frage ist, wie ich das am edelsten realisiere, da ich mir sicher bin, dass das ein normales Problem ist und ich dieses gerne so lösen würde, wie es "die Konvention" vorsieht.



http://izpack.org/


----------



## Der Müde Joe (12. Jun 2008)

Nsis


----------



## Professor Chaos (12. Jun 2008)

Danke für die Links.

Mir ist gerade eben eine Lösung für mein Problem eingefallen, die ganz einfach feststellt, ob mein Programm das erste mal läuft oder nicht. Dadurch kann ich auf die Installationsroutine verzichten und brauche eure Programme nicht zu lernen. 

Obwohl ich mir eure Programme daher nicht im Detail angesehen habe, markiere ich diesen Thread als gelöst.

Wen es interessiert, nachfolgend, wie ich feststelle, ob mein Programm das erste mal läuft oder nicht:
Mein Programm legt im selben Ordner des Programms (also im Ordner der Jar-Datei) eine Textdatei an.
Bei Programmstart teste ich einfach, ob diese bereits vorhanden ist. Falls ja, führe ich die Routinen aus, die nur beim ersten Programmstart ausgeführt werden sollen, falls nein, fahre ich "normal" mit meinem Programm fort.


----------

