Discussion:
Java Anwendung als EXE für Windows ausliefern
(zu alt für eine Antwort)
Armin Gajda
2006-05-18 08:20:40 UTC
Permalink
Hallo,

wir haben eine kleine Java-Anwendung, die wir den Kunden gerne möglichst
einfach bereitstellen möchten.
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.

Gibt es hier eine Lösung, wie man das vereinfachen kann, so dass der
Kunde die Anwendung einfach nur durch Doppelklick starten muss, oder
zumindest ein Setup-Programm aufrufen kann, das alles installiert?

Optimalerweise eine kostenlose Lösung, aber solang sich die Kosten im
Rahmen halten, darf es auch etwas kommerzielles sein.
--
Gruß Armin...
Frank Buss
2006-05-18 08:39:16 UTC
Permalink
Post by Armin Gajda
Gibt es hier eine Lösung, wie man das vereinfachen kann, so dass der
Kunde die Anwendung einfach nur durch Doppelklick starten muss, oder
zumindest ein Setup-Programm aufrufen kann, das alles installiert?
War letztens eine Diskussion hier:

http://groups.google.de/group/de.comp.lang.java/browse_thread/thread/1f8ad935b2a51c0e

Ich habe mit JET gute Erfahrungen gemacht, läuft sogar noch auf Windows 98
(was bei GCJ ein Problem war).
--
Frank Buss, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Armin Gajda
2006-05-18 08:43:50 UTC
Permalink
Post by Frank Buss
Post by Armin Gajda
Gibt es hier eine Lösung, wie man das vereinfachen kann, so dass der
Kunde die Anwendung einfach nur durch Doppelklick starten muss, oder
zumindest ein Setup-Programm aufrufen kann, das alles installiert?
http://groups.google.de/group/de.comp.lang.java/browse_thread/thread/1f8ad935b2a51c0e
Ich habe mit JET gute Erfahrungen gemacht, läuft sogar noch auf Windows 98
(was bei GCJ ein Problem war).
Schau ich mir mal an, danke!
--
Gruß Armin
Armin Gajda
2006-05-18 08:43:13 UTC
Permalink
Post by Armin Gajda
Hallo,
wir haben eine kleine Java-Anwendung, die wir den Kunden gerne möglichst
einfach bereitstellen möchten.
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.
Gibt es hier eine Lösung, wie man das vereinfachen kann, so dass der
Kunde die Anwendung einfach nur durch Doppelklick starten muss, oder
zumindest ein Setup-Programm aufrufen kann, das alles installiert?
Optimalerweise eine kostenlose Lösung, aber solang sich die Kosten im
Rahmen halten, darf es auch etwas kommerzielles sein.
Ich habe eine recht gute Seite zu dem Thema gefunden:

http://www.javalobby.org/articles/java2exe/
--
Gruß Armin
Bernd Eckenfels
2006-05-18 09:12:16 UTC
Permalink
Post by Armin Gajda
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.
Du kannst recht einfach mit Nullsoft nen Installer schreiben der das tut.
Post by Armin Gajda
Gibt es hier eine Lösung, wie man das vereinfachen kann, so dass der
Kunde die Anwendung einfach nur durch Doppelklick starten muss
Es gibt einige Java Launcher die man mit nem config file konfigurieren kann
fuer den classpath und die die vm suchen. z.b. launch4j oder jsmooth...

Gruss
Bernd
Wanja Gayk
2006-05-18 10:52:14 UTC
Permalink
Post by Armin Gajda
wir haben eine kleine Java-Anwendung, die wir den Kunden gerne möglichst
einfach bereitstellen möchten.
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.
Eine installierte JRE sollte man voraussetzen können.

Alles was du dann noch brauchst ist ein .jar (oder mehrere davon), von
denen das zu startende .jar über einen Manifest-Eintrag verfügt, darin
steht der classpath und alles andere.
Der Kunde muss nur noch einen doppelklick machen.

Eine andere Möglichkeit ist java webstart. Dort wird eine passende JRE
heruntergeladen, sofern noch nicht vorhanden. auch aktualisierungen
gehen automatisch. Webstart ist Teil jeder aktuellen JRE-Installation.

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
ajhanke
2006-05-18 11:04:00 UTC
Permalink
Wenn ihr JBuilder als Entwicklungsumgebung benutzt, dann könnt ihr es
ganz einfach über den machen. Hab das schon des öfteren ausprobiert
und es funktioniert ohne Probleme.

Alternativ könnte man dem Kunden ein Batchfile bzw. ein .sh File
mitgeben.

Übrigens, der JBuilder kann auch für anderen
Betriebssysteme/Plattformen ausführbare Dateien erstellen.
Stefan Matthias Aust
2006-05-18 18:35:47 UTC
Permalink
Post by Armin Gajda
wir haben eine kleine Java-Anwendung, die wir den Kunden gerne möglichst
einfach bereitstellen möchten.
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.
Warum? Du kannst problemlos das JRE deiner Anwendung beilegen und mit
einer CMD-Datei (früher mal BAT-Datei) dann Java und deine Anwendung
starten. Zusammen in ein ZIP packen und der Anwender muss nur das ZIP
auspacken und (unter Windows) eine Datei doppelklicken.
--
Stefan Matthias Aust // Ergo bibamus, ne sitiamus, vas repleamus!
Ingo R. Homann
2006-05-19 07:36:47 UTC
Permalink
Hi,
Post by Stefan Matthias Aust
Post by Armin Gajda
wir haben eine kleine Java-Anwendung, die wir den Kunden gerne
möglichst einfach bereitstellen möchten.
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.
Warum? Du kannst problemlos das JRE deiner Anwendung beilegen und mit
einer CMD-Datei (früher mal BAT-Datei) dann Java und deine Anwendung
starten. Zusammen in ein ZIP packen und der Anwender muss nur das ZIP
auspacken und (unter Windows) eine Datei doppelklicken.
Das Problem ist doch, dass ZIP viele Endanwender schon überfordert. Für
die ist es eigentlich schon zu viel verlangt, dass sie *zwei* Installer
(Java und das eigentliche Programm) aufrufen müssen, und das auch noch
in der richtigen Reihenfolge.

Und auch wenn man soviel DAU-tum eigentlich nicht unterstützen sollte,
haben die insofern recht, als dass man heutzutage wirklich erwarten
kann, dass die Installation mit einem einzigen Doppelclick gestartet
wird, und sie am Ende ein schönes Symbol auf dem Desktop haben.

Und seien wir mal ehrlich: Wenn es sich um ein Mini-Progrämmchen
handelt, in der Art wie man sie zu Hunderten aus dem Netz ziehen kann,
dann machen wir es doch genauso: Wenn ein solches Programm nicht auf
Anhieb funktioniert, wird halt das nächste ausprobiert.

Die Hürden liegen da halt unterschiedlich hoch: der eine hat keine
Probleme, es mal eben neu zu compilieren, ein anderer ist noch bereit,
eine Umgebungsvariable zu setzen, ein dritter installiert sich zur Not
vorher halt noch WinZIP, auch wenn er es noch nie gebraucht hat, und ein
vierter will es eben partout per "One-Click" haben.

Ciao,
Ingo
Stefan Matthias Aust
2006-05-20 06:35:41 UTC
Permalink
Post by Ingo R. Homann
Das Problem ist doch, dass ZIP viele Endanwender schon überfordert.
ZIP ist doch bei Windows eingebaut. Beim Mac weiss ich's nicht, aber bei
Linux ist das ebenfalls mit Bordmitteln auspackbar.
Post by Ingo R. Homann
Für
die ist es eigentlich schon zu viel verlangt, dass sie *zwei* Installer
(Java und das eigentliche Programm) aufrufen müssen, und das auch noch
in der richtigen Reihenfolge.
Wieso zwei Installer? Ich schlug doch gerade vor, genau ein ZIP zu
benutzen, nicht zwei Installer. Wenn's eine Anwendung für Endanwender,
die nichts von Java gehört haben (müsssen) sein soll, würde ich immer
ein gemeinsames Bündel schnüren. Die kleinere Version ohne JRE kann man
immer noch für die "Experten" zur Verfügung stellen.
Post by Ingo R. Homann
Und seien wir mal ehrlich: Wenn es sich um ein Mini-Progrämmchen
handelt, in der Art wie man sie zu Hunderten aus dem Netz ziehen kann,
...die schreibt man nicht in Java :)
Post by Ingo R. Homann
Die Hürden liegen da halt unterschiedlich hoch: der eine hat keine
Probleme, es mal eben neu zu compilieren, ein anderer ist noch bereit,
eine Umgebungsvariable zu setzen
Umgebungsvariablen zu setzen wäre ich auch nicht bereit.
Post by Ingo R. Homann
ein dritter installiert sich zur Not
vorher halt noch WinZIP, auch wenn er es noch nie gebraucht hat, und ein
vierter will es eben partout per "One-Click" haben.
Nichts ist einfacher, als z.B. ein selbstextrahierendes ZIP
(Arme-Leute-Installer) zu bauen. Statt Winzip würde ich lieber eine
kostenlose Alternative empfehlen und damit das ein selbstextrahierendes
Archiv bauen. Man kann zwar auch etwas wie NSIS nehmen, das ist aber
deutlich aufwendiger zu konfigurieren. Bei 7-Zip, welches nicht nur
kostenlos sondern auch Open Source und Free Software im Sinne der FSF
ist, ist es ein Klick auf die Option "SFX erstellen". Außerdem kann man
statt PKZIP-Format das besser komprimierende LZMA wählen. Über die
Kommandozeilenversion von 7z kann man auch noch eine EXE bauen, die sich
automatisch entpackt und danach eine bestimmte Datei aufruft.
--
Stefan Matthias Aust // Ergo bibamus, ne sitiamus, vas repleamus!
Thomas G. Liesner
2006-05-20 12:48:44 UTC
Permalink
Post by Stefan Matthias Aust
Post by Ingo R. Homann
Das Problem ist doch, dass ZIP viele Endanwender schon überfordert.
ZIP ist doch bei Windows eingebaut.
Erst ab Windows XP.

So long,
Thomas G. Liesner
--
---------------- Neue Hamster-stable 2.1.0.11 seit 28.03.2006 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de <mailto:***@tglsoft.de>
Stefan Matthias Aust
2006-05-20 15:05:25 UTC
Permalink
Post by Thomas G. Liesner
Post by Stefan Matthias Aust
Post by Ingo R. Homann
Das Problem ist doch, dass ZIP viele Endanwender schon überfordert.
ZIP ist doch bei Windows eingebaut.
Erst ab Windows XP.
Wieso "erst"? Schon! Windows XP ist mittlerweile wieviele Jahre alt? 5?
Wer sein Windows noch länger hat, hat bestimmt schon mal eine ZIP-Datei
auspacken müssen und dann eh ein entsprechendes Programm installiert.
--
Stefan Matthias Aust // Ergo bibamus, ne sitiamus, vas repleamus!
J. Meyer
2006-05-21 13:32:49 UTC
Permalink
Hallo,

ich habe auch letztens eine Java-Anwendung an ausgeliefert und keiner
hat gemerkt das es Java ist.

Ich hab zu der Anwendung, die ja in der jar-Datei kaum Platz einnimmt
einfach ein JRE dazugepackt, das auch schon mit Java3D usw.
vorkonfiguriert war.

Das Installationsprogramm habe ich mit NSIS (Nullsoft, echt gut!)
erstellt und das kopiert den ganzen kram dahin wo es der Endanwender hin
will.

Dazu werden dann die Verknüpfungen auf Desktop und Startmenu so
erstellt, dass sie auf das mitgelieferte "java.exe" zeigen und die
main-Klasse wird als Parameter angehängt und es funktioniert wunderbar.

Ich habe es auf die Art sogar geschafft bestimmte Dateiendungen mit der
Anwendung zu verknüpfen.
In Zeiten der fast unerschöpfbaren Festplattenkapazitäten ist es auch
eigentlich kein Problem sowas mitzuliefern!


Gruß
Johannes
Ingo R. Homann
2006-05-22 08:32:38 UTC
Permalink
Hi,
Post by Stefan Matthias Aust
Für die ist es eigentlich schon zu viel verlangt, dass sie *zwei*
Installer (Java und das eigentliche Programm) aufrufen müssen, und das
auch noch in der richtigen Reihenfolge.
Wieso zwei Installer? Ich schlug doch gerade vor, genau ein ZIP zu
benutzen, nicht zwei Installer. Wenn's eine Anwendung für Endanwender,
die nichts von Java gehört haben (müsssen) sein soll, würde ich immer
ein gemeinsames Bündel schnüren. Die kleinere Version ohne JRE kann man
immer noch für die "Experten" zur Verfügung stellen.
Dann musst Du für jedes Progrämmchen aber auch die JRE jedesmal mit
ausliefern. Und wie gesagt: Ein Icon richtet Dir das auch nicht ein.
Selbst wenn sich das Ding selbstädnig nach c:/programme/SMA/application
(oder c:/program files/... ?) entpackt - viele Benutzer bekommen das
dann immer noch nicht gestartet. Und wie ich erläutert hatte, kann man
es ihnen nur bedingt verdenken. Wenn - um mal wieder ein abgelutschtes
Beispiel heranzuziehen - ich bei meinem Auto eine Lampe wechseln will,
sehe ich auch nicht ein, dass ich vorher den Luftfilter ausbauen muss
(das ist bei meinem Mazda wirklich so - Schande!) Und wenn ich für's
Lampenwechseln in die Werkstatt fahren muss, dann ist das für mich ein
Argument, beim nächsten Autokauf vielleich eine andere Marke zu kaufen.
Post by Stefan Matthias Aust
Und seien wir mal ehrlich: Wenn es sich um ein Mini-Progrämmchen
handelt, in der Art wie man sie zu Hunderten aus dem Netz ziehen kann,
...die schreibt man nicht in Java :)
Ja, und zwar aus genau diesem einen Grund. Leider.

Ciao,
Ingo
Carsten Wanke
2006-05-22 09:11:24 UTC
Permalink
Hallo Stefan,
Post by Stefan Matthias Aust
Post by Armin Gajda
wir haben eine kleine Java-Anwendung, die wir den Kunden gerne möglichst
einfach bereitstellen möchten.
In der bisherigen Form muss sich der Kunde immer mit Classpath und
JRE-Installation 'herumplagen'.
Warum? Du kannst problemlos das JRE deiner Anwendung beilegen und mit
einer CMD-Datei (früher mal BAT-Datei) dann Java und deine Anwendung
starten. Zusammen in ein ZIP packen und der Anwender muss nur das ZIP
auspacken und (unter Windows) eine Datei doppelklicken.
Damit der Anwender nicht mal das tun muss, kann man ein
selbstextrahierendes Archiv erstellen, das nach dem Entpacken die cmd-Datei
aufruft.

Ich würde mich allerdings bedanken, wenn die JRE-Installation ungefragt auf
meinem System anläuft und vermutlich in Zukunft um diese Software einen
weiten Bogen machen. Ich denke ja, dass auf einem aktuellen System Java
installiert sein sollte, und wenn nicht, dann ist das ein System-Problem
und keines des Anwendungsprogramms. Um den Autovergleich nochmal zu
strapazieren: Bei einem Autoradio ist auch keine Lichtmaschine oder
Batterie dabei, obwohl es ohne nicht funktioniert.

Gruß, Carsten
Stefan Matthias Aust
2006-05-24 07:15:02 UTC
Permalink
Post by Carsten Wanke
Ich würde mich allerdings bedanken, wenn die JRE-Installation ungefragt auf
meinem System anläuft
Ich sehe da kein Problem und würde mich stattdessen "bedanken", wenn die
Software nicht "aus der Box" sofort läuft. Wer nicht mit dem von mir
installierten JRE 6 klar kommt, sollte besser sein eigenes JRE
mitbringen, damit ich mich mit der Software beschäftige. Und ich habe
zufällig ein JRE installiert. Viele werden das nicht haben. Ich will
nur sagen, die Software sollte vollständig sein, das ist mir wichtiger,
als da ein oder zwei MB zu sparen, weil Software gemeinsam benutzt wird.

Und aus Entwickler-Sicht sollte klar sein, dass es besser und sicherer
ist, sich nicht auf eventuell vorinstallierte Software in unbekannter
Version verlasen zu müssen.
--
Stefan Matthias Aust // Ergo bibamus, ne sitiamus, vas repleamus!
Bernd Eckenfels
2006-05-24 08:02:08 UTC
Permalink
Post by Stefan Matthias Aust
Und aus Entwickler-Sicht sollte klar sein, dass es besser und sicherer
ist, sich nicht auf eventuell vorinstallierte Software in unbekannter
Version verlasen zu müssen.
Wichtig ist nur, dass sich die Zusatz-VM nicht in der Registry unter den
Default Java Settings vfestsetzt oder gar Mime Handler (JNLP) anfasst.

Und das macht einem Sun garnicht so einfach (wenn man z.b. ein shortcut auf
das eigene javaws.exe ausliefern möchte)

Gruss
Bernd
Carsten Wanke
2006-05-24 10:28:14 UTC
Permalink
Hallo Stefan,
Post by Stefan Matthias Aust
Post by Carsten Wanke
Ich würde mich allerdings bedanken, wenn die JRE-Installation ungefragt auf
meinem System anläuft
Ich sehe da kein Problem und würde mich stattdessen "bedanken", wenn die
Software nicht "aus der Box" sofort läuft.
Ok, das sehe ich auch so. Aus Anwendersicht würde ich aber auch erwarten,
dass eine Software auf meinem möglicherweise nur fast aktuellen Java läuft.
Bei der Installation sollte das geprüft werden, dann darf mir das
Installationsprogramm gerne anbieten, die mitgelieferte neuere Version zu
installieren. Dann habe ich zumindest die Möglichkeit, ein "beta" im Namen
suspekt zu finden und auf die Software zu verzichten. ;-)
Nur: Diese Vorgehensweise braucht mehr als die diskutierten einfachen
Mittel.

Gruß, Carsten
Stefan Matthias Aust
2006-05-24 10:50:01 UTC
Permalink
Post by Carsten Wanke
Installationsprogramm gerne anbieten, die mitgelieferte neuere Version zu
installieren. Dann habe ich zumindest die Möglichkeit, ein "beta" im Namen
suspekt zu finden und auf die Software zu verzichten. ;-)
Zwei Punkte dazu: Erstens ist es zwar schön, wenn die Downloadgröße
kleiner ist das das JRE nur dann gezogen wird, wenn ich's auch bräuchte.
Doch andererseits ist es oberärgerlich, wenn ich die Software (dank
schneller Flatrate problemlos) ziehe und dann bei jemandem ohne
schnellen Internetzugang installiere und dort dann feststelle, das noch
was fehlt. Das nervt. Ich habe kein Problem damit ob es nun 5MB, 20 MB
oder 50MB sind - ein Modembenutzer schreckt vor allen größeren bereits
zurück.

Zweitens ist es aus Herstellersicht zusätzlicher nerviger Support, wenn
der Benutzer oder noch schlimemr eine andere Software mal eben das JRE
upgradet, meine Software daher nicht mehr läuft und der Benutzer sich
jetzt bei mir meldet. Daher bin ich ein Fan von in sich abgeschlossener
Software ohne externe Abhängigkeiten.
--
Stefan Matthias Aust // Ergo bibamus, ne sitiamus, vas repleamus!
Bernd Eckenfels
2006-05-24 17:44:09 UTC
Permalink
Post by Carsten Wanke
dass eine Software auf meinem möglicherweise nur fast aktuellen Java läuft.
Bei der Installation sollte das geprüft werden
das ist fatal, es gibt so viele zerschossene JRE instalaltionen, das ist
extrem schwer zu prüfen. Da liegen dann Libs im endorsed verzeichnis, es
wurden system properties geaendert, es gibt zu wenige oder zu viele JCE
Treiber oder der headless support laeuft nicht weil die libXaw.so nicht in
der richtigen bittiefe da ist. Und und und ... einfach so zu prüfen ob die
java version stimmt und die vm sich starten laesst ist da etwas kurz
gegriffen.

Man kann sicherlich "auf eigene gefahr" eine installation ohne komplette jre
machen, aber ob man das dann im setup.exe unterstützen muss? jre kopie
loeschen und .ini file anpassen bekommt der poweruser ja auch so hin. (unter
verlust der wartung natuerlich)

Gruss
Bernd

Lesen Sie weiter auf narkive:
Loading...