2009-08-13 2 views
2

Ich habe eine Java-Anwendung, die ich als exe oder dwg usw. veröffentlichen möchte, damit Benutzer auf verschiedenen Plattformen auf sie doppelklicken können und es starten zu starten. Aber für meinen Code, um wirklich gut zu funktionieren, brauche ich es, um als Windows-Dienst und was auch immer das Äquivalent in anderen Betriebssystemen sind. Die Verwendung von Java Web Start ist keine Lösung, da, wie ich es verstehe, wenn der Client-Rechner heruntergefahren wird, der Benutzer erneut auf die exe doppelklicken muss. Ich habe Java-Service-Wrapper versucht, aber ich kann nicht sehen, wie man es releasefähig machen kann.Eine Java-Anwendung auf einem anderen Betriebssystem freigeben

Dank Pranabesh

+0

Diese Frage deckt teilweise den gleichen Grund (siehe Punkt # 3): http://stackoverflow.com/questions/995881/jar-installer-that-auto-detects-if-java-is-there-and -autostarts-the-application – Jonik

+0

ich kann eine exe für windows mit launch4j machen aber wie mache ich eine dmg für mac? –

Antwort

0

Sie müßten Release-Paket für jedes Betriebssystem, das Sie auf lösen waren zu bauen.

Für Windows zum Beispiel müssen Sie einen ausführbaren Wrapper finden. Es ist schon eine Weile her, seit ich das gemacht habe, aber ich erinnere mich daran, ein Paar zu nennen, das tatsächlich einen Installer als Teil des Prozesses bauen würde.

launch4j ist ich nur

+0

Yep, Launch4J ist eine gute Lösung: http://launch4j.sourceforge.net/ – Russell

+1

Ich kann eine EXE für Windows mit Launch4j machen, aber wie mache ich eine DMG für Mac? –

+0

Sorry, ich habe es nur für Windows verwendet ... – jeef3

1

Java Service Wrapper erinnert haben, ist eine Möglichkeit, für Windows/Unix/OSX zu gehen. Ich benutze es seit einigen Jahren ohne Probleme. Es ist eine großartige Software und behandelt JVM-Abstürze/Hängt gut automatisch den Dienst neu starten, wenn etwas Schlimmes passiert.

Was die Verteilung der Anwendung betrifft, würde ich NSIS unter Windows empfehlen. Es kann ein nettes Installationsprogramm erstellen, das die Dateien bei Bedarf speichert und den JSW-Stub ausführt, um den Dienst auf dem Zielsystem zu installieren. Für Unix können Sie es einfach in tar.gz packen und Anweisungen zur Installation des Dienstes bereitstellen (kopieren Sie das sh-Skript in /etc/init.d, installieren Sie es mit chkconfig oder einem anderen systemabhängigen Tool zur Verwaltung von Startskripten). Auf Mac sollte man es in dmg packen.

Sie können auch versuchen izpack, wenn Sie eine plattformübergreifende Lösung möchten. izpack kann vom Java Web Start ausgeführt werden, als native Windows-Anwendung oder Mac-Anwendung, überprüfen Sie die utilities page.

IzPack ist eine Komplettlösung für das Verpacken, Verteilen und Bereitstellen von Anwendungen. Es ist vollständig plattformübergreifend und generiert ein einzelnes Installationsprogramm. Als solche ist es eine Alternative zu nativen Lösungen wie plattformspezifischen Installationsprogrammen und Paketmanagern. Für von IzPack generierte Installationsprogramme ist nur eine Java Virtual Machine erforderlich.

2

Wenn ein kommerzielles Werkzeug für Sie akzeptabel ist, würde ich install4j empfehlen. Es kann Installateure für die gängigsten Plattformen erzeugen, die speziell die Installation der Anwendung als Service unterstützen.

Zitat aus ihrem Features page:

install4j bietet volle Unterstützung für die Erzeugung und Installation Dienste (Daemons). Für Dienste generiert install4j ausführbare Dateien unter Windows, Startobjekte unter Mac OS X und startet/stoppt Skripte auf Unix/Linux-Plattformen.

+1

Zustimmen, wir verwenden dieses Produkt und bauen plattformspezifische Dateien für Windows, MAC und Lunix. Es hat auch coole spezifische Optionen für verschiedene Betriebssysteme. Wie bereits erwähnt, können Sie Windows als Dienst installieren. Das Verkaufsargument für mich ist, dass es auch ein eingebautes Mechnisim für automatische Updates zur Verfügung stellt. Es hat auch eine schöne api. – Allan

Verwandte Themen