Wie kann ich eine Java-Quelldatei (* .java) oder eine Klassendatei (* .class) in eine EXE-Datei konvertieren?
Ich brauche auch ein Installationsprogramm für mein Programm.
Wie kann ich eine Java-Quelldatei (* .java) oder eine Klassendatei (* .class) in eine EXE-Datei konvertieren?
Ich brauche auch ein Installationsprogramm für mein Programm.
Antworten:
Das Java Packager-Tool kompiliert, packt und bereitet Java- und JavaFX-Anwendungen für die Verteilung vor. Der Befehl javapackager ist die Befehlszeilenversion.
- Oracle-Dokumentation
Das javapackager
Dienstprogramm wird mit dem JDK geliefert. Es kann -native exe
unter anderem EXE-Dateien mit dem Flag generieren .
WinRun4j ist ein Java-Launcher für Windows. Es ist eine Alternative zu javaw.exe und bietet die folgenden Vorteile:
- Verwendet eine INI-Datei zum Angeben von Klassenpfad, Hauptklasse, VM-Argumenten und Programmargumenten.
- Benutzerdefinierter ausführbarer Name, der im Task-Manager angezeigt wird.
- Zusätzliche JVM-Argumente für eine flexiblere Speichernutzung.
- Eingebauter Symbolersatz für benutzerdefiniertes Symbol.
- [weitere Stichpunkte folgen]
- WinRun4Js Webseite
WinRun4J ist ein Open Source-Dienstprogramm. Es hat viele Funktionen.
Packt Ihre JAR, Assets und eine JVM für die Verteilung unter Windows, Linux und Mac OS X und fügt eine native ausführbare Datei hinzu, damit sie wie eine native App erscheint. Packr ist am besten für GUI-Anwendungen geeignet.
- Packr README
packr ist ein weiteres Open Source Tool.
JSmooth ist ein Java Executable Wrapper. Es werden native Windows-Starter (Standard-EXE) für Ihre Java-Anwendungen erstellt. Dadurch wird die Java-Bereitstellung viel reibungsloser und benutzerfreundlicher, da jede installierte Java-VM selbst gefunden werden kann.
- JSmooths Website
JSmooth ist Open Source und verfügt über Funktionen, ist aber sehr alt. Die letzte Veröffentlichung war im Jahr 2007.
JexePack ist ein Befehlszeilentool ( ideal für automatisiertes Scripting), mit dem Sie Ihre Java-Anwendung (Klassendateien) optional zusammen mit ihren Ressourcen (wie GIF / JPG / TXT / usw.) in eine einzige komprimierte 32-Bit-Windows-EXE-Datei packen können , das mit der Java-Laufzeitumgebung von Sun ausgeführt wird. Es werden sowohl Konsolen- als auch Fensteranwendungen unterstützt.
- JexePacks Website
JexePack ist Trialware. Für die Verwendung in der Produktion ist eine Zahlung erforderlich, und mit diesem Tool erstellte exe-Dateien zeigen "Erinnerungen" ohne Zahlung an. Auch die letzte Veröffentlichung war im Jahr 2013.
Mit InstallAnywhere können Entwickler auf einfache Weise professionelle Installationssoftware für jede Plattform erstellen. Mit InstallAnywhere können Sie sich schnell an Branchenveränderungen anpassen, schneller auf den Markt kommen und ein ansprechendes Kundenerlebnis bieten. Informieren Sie sich vor dem Versand über die Sicherheitsanfälligkeit der OSS-Komponenten Ihres Projekts.
- InstallAnywhere-Website
InstallAnywhere ist ein kommerzielles / Enterprise-Paket, das Installationsprogramme für Java-basierte Programme generiert. Es ist wahrscheinlich in der Lage, EXE-Dateien zu erstellen.
Alternativ zu EXE-Dateien können Sie eine JAR-Datei erstellen, die beim Doppelklicken automatisch ausgeführt wird, indem Sie dem JAR-Manifest einen Einstiegspunkt hinzufügen .
Eine hervorragende Informationsquelle zu diesem Thema ist der Artikel von Excelsior " Java in EXE konvertieren - Warum, wann, wann nicht und wie ".
Siehe auch den Begleitartikel " Best JAR to EXE Conversion Tools, kostenlos und kommerziell ".
Launch4j ist ein plattformübergreifendes Tool zum Umschließen von Java-Anwendungen, die als Jars in leichtgewichtigen nativen Windows-ausführbaren Dateien verteilt sind. Die ausführbare Datei kann so konfiguriert werden, dass nach einer bestimmten JRE-Version gesucht oder eine gebündelte Version verwendet wird. Außerdem können Laufzeitoptionen wie die anfängliche / maximale Heap-Größe festgelegt werden. Der Wrapper bietet außerdem eine bessere Benutzererfahrung durch ein Anwendungssymbol, einen nativen Begrüßungsbildschirm vor der JRE, einen benutzerdefinierten Prozessnamen und eine Java-Downloadseite, falls die entsprechende JRE nicht gefunden werden kann.
- Die Website von Launch4j
UPDATE: GCJ ist tot. Es wurde 2016 offiziell aus dem GCC-Projekt entfernt. Bereits zuvor wurde es sieben Jahre lang praktisch aufgegeben und war auf keinen Fall vollständig genug , um als praktikable alternative Java-Implementierung zu dienen.
Suchen Sie einen anderen Java AOT-Compiler.
GCJ: Der GNU Compiler für Java kann Java-Quellcode in nativen Maschinencode kompilieren, einschließlich ausführbarer Windows-Dateien.
Obwohl unter GCJ nicht alles in Java unterstützt wird, insbesondere die GUI-Komponenten (siehe Welche Java-APIs werden unterstützt? Wie vollständig ist die Unterstützung? Frage aus den FAQ ). Ich habe GCJ nicht viel benutzt, aber aufgrund der begrenzten Tests, die ich mit Konsolenanwendungen durchgeführt habe, scheint es in Ordnung zu sein.
Ein Nachteil der Verwendung von GCJ zum Erstellen einer eigenständigen ausführbaren Datei besteht darin, dass die Größe der resultierenden EXE-Datei sehr groß sein kann. Einmal habe ich eine einfache Konsolenanwendung in GCJ kompiliert und das Ergebnis war eine ausführbare Datei mit etwa 1 MB. (Es kann Wege geben, die mir nicht bekannt sind. Eine andere Option wären ausführbare Komprimierungsprogramme.)
In Bezug auf Open Source-Installationsprogramme ist das skriptfähige Nullsoft -Installationssystem ein skriptfähiges Installationsprogramm. Wenn Sie neugierig sind, gibt es vom Benutzer bereitgestellte Beispiele, wie Sie das Vorhandensein einer JRE erkennen und automatisch installieren können, wenn die erforderliche JRE nicht installiert ist. (Nur um Sie wissen zu lassen, ich habe NSIS noch nie verwendet.)
Weitere Informationen zur Verwendung von NSIS für die Installation von Java-Anwendungen finden Sie in meiner Antwort auf die Frage " Wie können Java-Anwendungen am besten verteilt werden? ".
Sie können eine Batchdatei mit dem folgenden Code erstellen:
start javaw -jar JarFile.jar
und konvertieren Sie die .bat in eine .exe mit einem beliebigen .bat in .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 ausgeführt werden können. Obwohl wir damit Windows-Dienste einrichten, verwenden wir nur Standardkomponenten.
Ich denke, Launch4J ist 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 verbessert, um einen guten Offline-Betrieb sowie eine "lokale Installation" zu ermöglichen. Es lohnt sich, einen Blick darauf zu werfen.
EDIT 2018: Java Web Start wird nicht mehr mit den neuesten JDKs gebündelt. Oracle drängt stattdessen auf ein Modell "Stellen Sie Ihre App lokal mit einem beiliegenden JRE bereit".
Wenn Sie Ihre gesamte Anwendung in nativen Code konvertieren müssen, dh eine EXE plus DLLs, gibt es ExcelsiorJET . Ich fand es gut und bot eine Alternative zum Bündeln einer JRE.
Ich würde sagen, launch4j ist das beste Tool zum Konvertieren eines Java-Quellcodes (.java) in eine EXE-Datei. Sie können sogar ein JRE damit zur Verteilung bündeln und die Exe kann sogar symbolisiert werden. Obwohl die Größe der Anwendung zunimmt, wird sichergestellt, dass die Anwendung auch dann einwandfrei funktioniert, wenn auf dem Benutzer kein JRE installiert ist. Außerdem wird sichergestellt, dass Sie das für Ihre App erforderliche spezifische JRE bereitstellen können, ohne dass der Benutzer es separat installieren muss. Leider verliert Java seine Bedeutung. Die Unterstützung für mehrere Plattformen wird völlig ignoriert und die endgültige App wird nur für Windows unterstützt. Dies ist jedoch keine große Sache, wenn Sie nur Windows-Benutzer bedienen.
Sie können Janel verwenden . Letzteres funktioniert als Application Launcher oder Service Launcher (verfügbar ab 4.x).
Alternativ können Sie einen Java-zu-C-Übersetzer (z. B. JCGO ) verwenden und die generierten C-Dateien in eine native Binärdatei (.exe) für die Zielplattform kompilieren.
Mir kann vergeben werden, dass ich gegen die Konvertierung eines Java-Programms in eine EXE-Anwendung bin, und ich habe meine Gründe. Das wichtigste ist, dass ein Java-Programm aus vielen IDEs in eine JAR-Datei kompiliert werden kann. Wenn das Programm im JAR-Format vorliegt, kann es auf mehreren Plattformen ausgeführt werden, im Gegensatz zu EXE, das nur in einer sehr eingeschränkten Umgebung ausgeführt wird. Ich bin für die Idee, dass Java-Programme nicht in 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 eine JAR-Datei ist.
Wenn es wirklich notwendig ist, es in exe zu konvertieren, erledigt der Jar2Exe-Konverter dies stillschweigend und man kann auch Bibliotheken anhängen, die zusammen mit der Hauptanwendung kompiliert wurden.
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 empfehlen .