O
OddParity
Gast
Ich bin auf der Suche nach Ideen, um ein Problem zu lösen. Ich habe schon einiges an Suche hinter mir, aber nichts passt einwandfrei.
Das Problem ist folgendes: Ich bin dabei, eine Anwendung zu programmieren ... deren Sinn erstmal irrelevant ist. Wichtig ist, dass die Nutzer keine(!) Computerkenntnisse haben. Die Anwendung beinhaltet Swing-Komponenten. Die Frage ist nun, wie ich die Anwendung verteile/installiere/starte.
Momentan habe ich folgendes:
- ausführbares Jar-file (outer-jar), Doppelklick entpackt alle Inhalte in einen temporären Ordner, der ein inneres Jar-file (inner-jar) enthält, outer-jar-Programm führt inner-jar aus. inner-jar beinhaltet das eigentliche Hauptprogramm und arbeitet mit den files im temporären Ordner. Wenn das Programm beendet wird, packt es alle files aus dem temporären Ordner in ein neues outer-jar (das alte wird überschrieben --> man hat nun veränderte files im neuen outer-jar, das für den nächsten start bereit ist). dann ruft das noch laufende inner-jar an neues outer-jar, das wartet, bis inner-jar korrekt beendet wurde (schreibschutz aufgehoben). outer-jar löscht dann den temporären ordner.
--> So wie es jetzt ist, können vorgefertigte Argumente für verschiedene Programm-Modi in einem Argument-file im gepackten outer-jar mitgegeben werden. Der Nutzer braucht nichts zu installieren. Das Programm kann, egal wo es liegt, sofort ausgeführt werden. Aus dem Programm heraus können neue Programme (selbes Programm, unterschiedliche Start-Argumente) exportiert werden, die wiederum dieselben Eigenschaften haben.
Das alles funktioniert einwandfrei.
Problem: Es geht nur, wenn Java installiert ist.
Ziel: Ein Installer, der überprüft, ob eine JVM installiert ist und eine mitbringt, die ohne Download installiert werden kann (oder besser noch, die JVM mitbringt, die das Programm direkt ausführen kann, ohne installieren).
--> Das ist mit z.B. JSmooth ja möglich, aber hier das schwierige: Das inner-jar muss in der Lage sein, eine Programm-Kopie zu exportieren, die bei Ausführung andere Argumente hat, aber gleiche Installer-Möglichkeiten. Wie auch immer der Installer generiert wird, es muss mit java-code oder kommandozeile möglich sein.
Irgendwelche Ideen? Es ist sehr unkonventionell, das ist mir klar und vielleicht nicht wirklich verständlich. Danke im Vorraus für jegliche Ideen.
Das Problem ist folgendes: Ich bin dabei, eine Anwendung zu programmieren ... deren Sinn erstmal irrelevant ist. Wichtig ist, dass die Nutzer keine(!) Computerkenntnisse haben. Die Anwendung beinhaltet Swing-Komponenten. Die Frage ist nun, wie ich die Anwendung verteile/installiere/starte.
Momentan habe ich folgendes:
- ausführbares Jar-file (outer-jar), Doppelklick entpackt alle Inhalte in einen temporären Ordner, der ein inneres Jar-file (inner-jar) enthält, outer-jar-Programm führt inner-jar aus. inner-jar beinhaltet das eigentliche Hauptprogramm und arbeitet mit den files im temporären Ordner. Wenn das Programm beendet wird, packt es alle files aus dem temporären Ordner in ein neues outer-jar (das alte wird überschrieben --> man hat nun veränderte files im neuen outer-jar, das für den nächsten start bereit ist). dann ruft das noch laufende inner-jar an neues outer-jar, das wartet, bis inner-jar korrekt beendet wurde (schreibschutz aufgehoben). outer-jar löscht dann den temporären ordner.
--> So wie es jetzt ist, können vorgefertigte Argumente für verschiedene Programm-Modi in einem Argument-file im gepackten outer-jar mitgegeben werden. Der Nutzer braucht nichts zu installieren. Das Programm kann, egal wo es liegt, sofort ausgeführt werden. Aus dem Programm heraus können neue Programme (selbes Programm, unterschiedliche Start-Argumente) exportiert werden, die wiederum dieselben Eigenschaften haben.
Das alles funktioniert einwandfrei.
Problem: Es geht nur, wenn Java installiert ist.
Ziel: Ein Installer, der überprüft, ob eine JVM installiert ist und eine mitbringt, die ohne Download installiert werden kann (oder besser noch, die JVM mitbringt, die das Programm direkt ausführen kann, ohne installieren).
--> Das ist mit z.B. JSmooth ja möglich, aber hier das schwierige: Das inner-jar muss in der Lage sein, eine Programm-Kopie zu exportieren, die bei Ausführung andere Argumente hat, aber gleiche Installer-Möglichkeiten. Wie auch immer der Installer generiert wird, es muss mit java-code oder kommandozeile möglich sein.
Irgendwelche Ideen? Es ist sehr unkonventionell, das ist mir klar und vielleicht nicht wirklich verständlich. Danke im Vorraus für jegliche Ideen.