Warum CLASS in EXE konvertieren?
JVM-Bytecode ist ein plattformunabhängiger Befehlssatz, der zur Laufzeit von der Java Virtual Machine interpretiert wird. Eine Windows-.exe enthält nativen x86/x64-Maschinencode, der direkt von der CPU ausgeführt wird. Dies sind grundlegend unterschiedliche Formate ohne gemeinsamen Befehlssatz, was eine mechanische Übersetzung in eine native ausführbare Datei unmöglich macht.
Wie man CLASS in EXE konvertiert
jpackage (JDK 14+) FREE
Bündeln Sie zuerst Ihre .class-Dateien in eine JAR mit jar cfe app.jar MainClass *.class, und führen Sie dann jpackage --input . --main-jar app.jar --name MyApp --type exe aus, um einen Windows-Installer zu erstellen, der eine private JRE mitliefert.
Launch4j FREE
Bündeln Sie Ihre Klassen zuerst in eine JAR und verwenden Sie dann Launch4j, um die JAR in einen leichtgewichtigen .exe-Stub zu hüllen, der zur Laufzeit eine installierte JRE lokalisiert.
Über diese Formate
Eine CLASS-Datei ist kompilierter Java-Bytecode - die Ausgabe, die javac aus einer .java-Quelldatei erzeugt. Um sie auszuführen, benötigen Sie installiertes Java (ein JDK) und verwenden…
.CLASS-Details öffnen →Eine EXE-Datei ist ein ausführbares Windows-Programm. Unter Windows startet man sie per Doppelklick. Auf dem Mac oder unter Linux kann man EXE-Dateien mit CrossOver oder Wine ausführen -…
.EXE-Details öffnen →Qualität & worauf zu achten ist
- Bei jedem praktischen Ansatz läuft Java weiterhin im Hintergrund -
jpackagebündelt eine private JRE, Launch4j erfordert eine installierte JRE; die JVM ist für Java-Bytecode nicht optional. - Websites, die behaupten, beliebige
.class-Dateien in eine echte eigenständige.exezu konvertieren, sind irreführend; ein solches Tool existiert nicht. - Um den Quellcode aus einer
.classzu inspizieren oder wiederherzustellen, verwenden Sie JD-GUI oder CFR, um zurück zu.javazu dekompilieren.
Häufig gestellte Fragen
Kann ich eine .class-Datei in .exe umbenennen und sie ausführen?
.class mit Javas Magic Bytes CA FE BA BE beginnt und nicht mit einem gültigen PE-Header.Was erzeugt jpackage eigentlich?
Kann ich eine einzelne .class-Datei ohne ein vollständiges Projekt umschließen?
public static void main Einstiegspunkt hat; Bibliotheksklassen und Fragmente müssen zuerst mit allen Abhängigkeiten in eine JAR gebündelt werden.