JavaDev: Installer und Launcher für Java Programme

Post to Twitter

Moin!

Die Frage kommt immer wieder mal, deswegen wollte ich hier eine kleine Liste an Programmen erfassen, die Java-Programme in native Betriebssysteme integrieren, Installer erzeugen oder das Starten vereinfachen.

Ich habe dafür drei Gruppen. Die Launcher sind Executables, die Java-Programme wie native Programme starten lassen. Das ist üblicherweise nur unter Windows notwendig. Linux und Mac behandeln Java-Programme wie alle anderen Executables. Die nächste Gruppe wäre Installer. Diese Werkzeuge erzeugen aus Java-Projekten Installationspakete, die es dem Anwender ermöglichen per Kommandozeile oder Assistenten Java-Programme zu installieren oder später zu deinstallieren. Die letzte Gruppe behandelt Packer. Darin fasse ich Tools zusammen, die 3rd-Party-Libs in ein JAR zusammenfassen, JARs komprimieren oder Klassen so umbenennen, so dass eine Quelltextwiederherstellung sehr schwer gemacht wird (Obfuscator).

Ich würde mich freuen, wenn ein paar Anregungen und Erfahrungsberichte rein kommen würden. Für die NetBeans Platform gibt es schon integrierte Installer für Windows, Linux, MacOS und Solaris sowie eine WebStart Variante. Außerdem einen Pack200 Tool für den Installer. Da braucht man für die meisten Fälle keine externen Tools.

Hier also eine Liste, die ich schon so gesammelt habe:

Launcher

  • WinRun4J
    • Lizenz: CPL
    • OS: Windows
    • Integration: Kommandozeile, Eclipse Plugin
    • Ein Executable mit native Bindings, Windows DDE-Zugriff, konfigurierbarem Icon, INI-Datei für Startparameter, Dienste-Wrapper, Systemlog-Unterstützung und Konsolenmodus.
    • Es unterstützt auch das Packaging von 3rd-Party Bibliotheken.
    • Soweit ich das sehen kann, hat man mindestens immer ein JAR und eine Java-Umgebung muss installiert sein.
  • Launch4j
    • Lizenz: BSD und MIT
    • OS: Alle Java-Plattformen (Ziel bleibt aber Windows)
    • Integration: Kommandozeile, Ant, Maven, GUI (Wizard)
    • Launch4j erzeugt eine Windows Executable-Datei, die alle JARs, native Bibliotheken und sogar ein Embedded JRE enthalten kann.
    • Es unterstützt eigene Icons für die Exe, JAR’s werden nicht beim Start extrahiert, unterstützt auch Konsolenanwendungen,

Installer

  • Open Installer (Crossplatform Installer)
    • Lizenz: CDDL 1.0
    • OS: Alle Java-Plattformen
    • Integration: Kommandozeile, NetBeans Platform Installer
    • Ich erwähne den Open Installer hier, weil dieser in der NetBeans Platform integriert ist und als Installer für den Glassfish verwendet wird. Ansonsten würde ich als Entwickler die Finger davon lassen, weil das Projekt extrem schlecht dokumentiert ist. Am besten den Quelltext anschauen, wenn man eine hohes Maß an Interesse und Leidensfähigkeit hat.
  • Antigen (Ant Installer Generator)
    • Lizenz: k/a
    • OS: Alle Java-Plattformen
    • Integration: Ant, Kommandozeile, (evtl. Maven)
    • Erzeugt aus Ant-Scripts einen grafischen Installer
    • Alle Programmbestandteile werden in einem JAR-Installer gepackt. Eine Java Runtime muss auf dem Zielrechner existieren.
  • InstallJammer
    • Lizenz: GPL mit “Special Exception“, darf kommerziell genutzt werden
    • OS: Multiplattform (tck/tcl), Windows 98, ME, 2000, XP, 2003, Vista, 2008, Linux, FreeBSD, Solaris, HP-UX, AIX
    • Integration: Kommandozeile, GUI
    • InstallJammer ist eine mächtige OpenSource Lösung die einen nativen Installer mit umfangreicher Buildumgebung anbietet. Der Installer ist nicht auf Java-Programme beschränkt. JRE wird vom Installer nur gesucht, aber nicht bei Bedarf installiert. Man kann aber das JRE wohl über Actions mitinstallieren.
    • Mehrsprachigkeit, Multiplattform, Nativer Installer im OS-Look, Benutzerdefinierte Aktionen, Installer-Profile (Kommandozeile, GUI, Silent, usw), GUI-Bearbeitung der Assistenten-Panels, Themen, Deinstallationsroutinen.
    • Umfangreiche Dokumentation
  • Install4j
    • Lizenz: Kommerziell (Windows Single ab 600€, Multiplatform Single ab 1700€, nach oben offen…)
    • OS: Win32, Win64, Linux RPM, MacOS, Unix
    • Integration: Ant, Kommandozeile, GUI
    • Dieser kommerzielle Installer bietet einen GUI oder Kommandozeileninstaller (auch Silent), JRE-Pacakging oder Detection, GUI und Scriptsprache, Mehrsprachigkeit, Dienste-Unterstützung, eigenes Icon und sehr vieles mehr.
  • Advanced Installer for Java Freeware Edition
    • Lizenz: Kommerziell, Freeware Edition
    • OS: Windows
    • Integration: Kommandozeile, GUI
    • Die Freeware Edition bietet einen MSI Installer Generator für Java Programme mit UAC Unterstützung, Registry-Zugriff, 32bit und 64bit, Scripting über XML-Konfiguration.
    • JRE Bundling ist nicht in der Free Edition, Custom Icon ist nicht möglich.
    • Feature Matrix

Packer

  • one-jar
    • Lizenz: Proprietär, OpenSource, BSD?
    • OS: Alle Java-Plattformen
    • Integration: Ant, Maven
    • Erzeugt aus mehreren JAR-Bibliotheken eine einzelne ausführbare JAR-Datei
    • Unterstützt auch native Bibliotheken, die während des Starts in das Dateisystem entpackt werden.
  • ProGuard (Obfuscator)
    • Lizenz: GPL
    • OS: Alle Java-Plattformen
    • Integration: Kommandozeile, Ant
    • Verändert sprechende Bezeichner (z.B. Paket und Klassennamen) in kompilierten JARs in verkürzte oder randomisierte Namen, um die Wiederherstellung von bearbeitbaren Quelltext zu erschweren.
    • Unterstützt viele Plattformen (Java 1.1 bis 6, ME, Android)
  • pack200 JAR Packager
    • Lizenz: Oracle License
    • OS: Alle Java-Plattformen
    • Integration: Kommandozeile
    • Ein Tool des Java SE SDKs von Oracle, dass seit Java 5 JAR Dateien besonders effizient packen kann.
    • Der Einsatz sind üblicherweise webbasierte Java-Anwendungen, damit diese im Download möglichst wenig Bandbreite verwenden
  • Ant Script für die NetBeans IDE
    • Lizenz: k/a
    • OS: Alle Java-Plattformen
    • Integration: Ant, NetBeans IDE
    • Es handelt sich dabei nicht um ein Programm, sondern ein Ant-Target-Script zum Erstellen von Single-JARs. Der verlinkte Blogeintrag beschreibt, wie man in NetBeans dieses Script integrieren kann.
Dieser Beitrag wurde unter Java, NetBeans IDE, NetBeans Plattform abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten auf JavaDev: Installer und Launcher für Java Programme

  1. Martin sagt:

    antigen ist deutlich älter (letzte Version von 2005) und Installjammer wird nicht mehr weiterenwickelt. Beim OpenInstaller gibt’s keine Downloads. Gibt’s irgendwelche aktuell gewartete freie Installer?

  2. salocinx sagt:

    hallo josch, der link zum integrierbaren installer für Netbeans ist leider nicht mehr verfügbar. könntest du mir auf die sprünge helfen :-) ? wie heisst das teil ?
    gruss

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.