Wie kann ich mein Java-Programm in eine .exe-Datei konvertieren?

Wie kann ich eine Java-Quelldatei (* .java) oder eine classndatei (* .class) in eine .exe-Datei konvertieren?

Ich brauche auch ein Installationsprogramm für mein Programm.

   

Einige Optionen:

Ausführbare Jar-Datei

Siehe auch Verteilen Ihrer Anwendung als ausführbare JAR-Datei und der Oracle-Dokumentation zum Erstellen einer JAR-Datei, die mit einem Doppelklick auf Windows ausgeführt werden kann.

JSmooth

(EDIT: Letzte Veröffentlichung war 2007)

JSmooth ist ein Java Executable Wrapper. Es erstellt native Windows-Startprogramme (Standard .exe) für Ihre Java-Anwendungen. Es macht Java-Bereitstellung viel reibungsloser und benutzerfreundlicher, da es in der Lage ist, jede installierte Java-VM selbst zu finden.

JexePack

(BEARBEITEN: Shareware: Zuletzt aktualisiert am 29.08.2013 Version-8.4)

JexePack ist ein Befehlszeilentool (ideal für automatisiertes Scripting), mit dem Sie Ihre Java-Anwendung (classndateien) optional zusammen mit ihren Ressourcen (wie GIF / JPG / TXT / etc) in einer einzigen komprimierten 32-Bit-Windows-EXE verpacken können , die mit Suns Java Runtime Environment ausgeführt wird. Konsolen- und Fensteranwendungen werden unterstützt.

LaunchAnywhere

(EDIT: Kommerziell mit kostenlosem Test, letzte Version ist von 2012)

Eine LAX-ausführbare Datei ist eine ausführbare Datei, die zum Starten einer Java-Anwendung auf einer LaunchAnywhere-kompatiblen Plattform verwendet wird. Momentan erstellt InstallAnywhere LaunchAnywhere unter Windows 95/98 / NT / 2000 / Me, Solaris, Linux und Mac OS X. Mit LaunchAnywhere können Endbenutzer auf ein Symbol (Windows oder Mac OS X) doppelklicken oder einen einzelnen Befehl eingeben (UNIX), um eine Java-Anwendung zu starten.

Siehe auch als Referenz Java in EXE konvertieren: Warum, Wann, Wann und Wie

Launch4j

Launch4j ist ein plattformübergreifendes Werkzeug zum Einbinden von Java-Anwendungen, die als jars in leichtgewichtigen Windows-nativen ausführbaren Dateien verteilt werden. Die ausführbare Datei kann so konfiguriert werden, dass sie nach einer bestimmten JRE-Version oder einer gebündelten JRE-Version sucht, und es können Laufzeitoptionen wie die ursprüngliche / maximale Heap-Größe festgelegt werden. Der Wrapper bietet auch eine bessere Benutzererfahrung durch ein Anwendungssymbol, einen nativen Pre-JRE-Startbildschirm, einen benutzerdefinierten processnamen und eine Java-Download-Seite, falls die entsprechende JRE nicht gefunden werden kann.

GCJ: Der GNU Compiler für Java kann Java-Quellcode in nativen Maschinencode kompilieren, einschließlich ausführbarer Windows-Dateien.

Obwohl nicht alles in Java unter GCJ unterstützt wird, insbesondere die GUI-Komponenten (siehe Welche Java-APIs werden unterstützt? Wie vollständig ist die Support- Frage aus den FAQ ). Ich habe GCJ nicht viel benutzt, aber aus den begrenzten Tests, die ich mit Konsolenanwendungen gemacht habe, scheint es in Ordnung zu sein.

Ein Nachteil der Verwendung von GCJ zum Erstellen einer eigenständigen ausführbaren Datei ist, dass die Größe der resultierenden EXE sehr groß sein kann. Einmal habe ich in GCJ eine triviale Konsolenanwendung kompiliert und das Ergebnis war eine ausführbare Datei von ca. 1 MB. (Es gibt möglicherweise Möglichkeiten, die mir nicht bekannt sind. Eine andere Option wären ausführbare Komprimierungsprogramme.)

In Bezug auf Open-Source-Installer ist das Nullsoft Scriptable Install System ein skriptfähiges Installationsprogramm. Wenn Sie neugierig sind, gibt es vom Benutzer beigesteuerte Beispiele zum Erkennen der Anwesenheit einer JRE und zur automatischen Installation, wenn die erforderliche JRE nicht installiert ist. (Nur um Sie wissen zu lassen, habe ich NSIS vorher noch nicht benutzt.)

Weitere Informationen zur Verwendung von NSIS für die Installation von Java-Anwendungen finden Sie in meiner Antwort auf die Frage ” Wie verteile ich Java-Anwendungen am besten? ”

Sie können viele der Java-Wrapper wie JSmooth, JWrapper und andere Dienstprogramme ausprobieren, aber Sie können auch eine .bat mit dem folgenden Code erstellen:
start javaw -jar JarFile.jar
und konvertieren Sie die Fledermaus in eine exe mit jedem .bat zu .exe-Konverter.

Wir verwenden Install4J , um Installationsprogramme für Windows- oder Unix-Umgebungen zu erstellen.

Es ist leicht anpassbar bis zu dem Punkt, an dem Sie Skripte für spezielle Aktionen schreiben möchten, die mit Standarddialogen nicht möglich sind. Aber obwohl wir Windows-Dienste damit einrichten, verwenden wir nur Standardkomponenten.

  • Installer + Launcher
  • Windows oder Unix
  • skriptfähig in Java
  • Ameisen Aufgabe
  • viele anpassbare Standard-Panels und Aktionen
  • beinhaltet optional oder lädt eine JRE herunter
  • kann auch Windows-Dienste starten
  • mehrere Sprachen

Ich denke, Launch4J stammt von der gleichen Firma (nur der Launcher – kein Installer).

PS: Leider werde ich für diese Bestätigung nicht bezahlt. Ich mag dieses Tool einfach.

Der neueste Java Web Start wurde erweitert, um sowohl einen guten Offline-Betrieb als auch eine “lokale Installation” zu ermöglichen. Es lohnt sich, etwas genauer zu betrachten.

IMHO JSmooth scheint einen ziemlich guten Job zu machen.

Wenn Sie Ihre gesamte Anwendung in nativen Code konvertieren müssen, dh eine EXE plus DLLs, gibt es ExcelsiorJET . Ich fand, es funktioniert gut und bot eine Alternative zur Bündelung einer JRE.

Alternativ können Sie einen Java-to-C-Übersetzer (z. B. JCGO ) verwenden und die generierten C-Dateien in einer nativen Binärdatei (.exe) für die Zielplattform kompilieren.

Ich würde sagen, dass launch4j das beste Werkzeug ist, um einen Java-Quellcode (.java) in eine .exe-Datei umzuwandeln. Sie können sogar einen jre mit ihm zur Verteilung bündeln und die exe kann sogar iconifiziert werden. Obwohl die Größe der Anwendung zunimmt, stellt sie sicher, dass die Anwendung auch dann einwandfrei funktioniert, wenn der Benutzer kein JRE installiert hat. Es stellt auch sicher, dass Sie in der Lage sind, die spezifischen JRE für Ihre App bereitzustellen, ohne dass der Benutzer sie separat installieren muss. Aber leider verliert Java seine Bedeutung. Seine Multi-Plattform-Unterstützung wird komplett ignoriert und die finale App wird nur für Windows unterstützt. Aber das ist keine große Sache, wenn Sie nur für Windows-Nutzer sind.

Sie können Janel verwenden . Letzteres funktioniert als Anwendungsstartprogramm oder Dienststartprogramm (verfügbar ab 4.x).

Ich kann vergeben werden, dass ich gegen die Umwandlung eines Java-Programms in eine .exe-Anwendung bin und ich habe meine Gründe. Der Hauptgrund ist, dass ein Java-Programm von vielen IDEs zu einer JAR-Datei kompiliert werden kann. Wenn das Programm im JAR-Format vorliegt, kann es in mehreren Plattformen ausgeführt werden, im Gegensatz zu EXE, die nur in sehr eingeschränkter Umgebung ausgeführt werden. Ich bin für die Idee, dass Java-Programme nicht zu Exe konvertiert werden sollten, es sei denn, es ist sehr notwendig. Man kann immer .bat-Dateien schreiben, die das Java-Programm ausführen, während es sich um eine JAR-Datei handelt.

Wenn es wirklich notwendig ist, es in exe zu konvertieren, macht der Jar2Exe-Konverter das still und man kann auch Bibliotheken anhängen, die zusammen mit der Hauptanwendung kompiliert werden.

Sie können jar mit jar2exe in exe konvertieren . Sie müssen jedoch die Software kaufen. Wenn Sie eine Open-Source-Software benötigen, würde ich JSmooth vorschlagen.