Varför konvertera CLASS till EXE?
JVM-bytecode är en plattformsoberoende instruktionsuppsättning som tolkas vid körning av Java Virtual Machine. En Windows .exe innehåller inbyggd x86/x64-maskinkod som körs direkt av processorn. Dessa är fundamentalt olika format utan gemensam instruktionsuppsättning, vilket gör mekanisk översättning till en inbyggd körbar fil omöjlig.
Hur man konverterar CLASS till EXE
jpackage (JDK 14+) FREE
Paketera först dina .class-filer i en JAR med jar cfe app.jar MainClass *.class, kör sedan jpackage --input . --main-jar app.jar --name MyApp --type exe för att skapa ett Windows-installationsprogram som inkluderar en privat JRE.
Launch4j FREE
Paketera dina klasser i en JAR först, använd sedan Launch4j för att omsluta JAR-filen i en lättviktig .exe-stubbe som lokaliserar en installerad JRE vid körning.
Om dessa format
En CLASS-fil är kompilerad Java-bytecode - det resultat som javac producerar från en .java-källfil. För att köra den behöver du Java (ett JDK) installerat, använd sedan kommandot «java…
Öppna detaljer för .CLASS →En EXE-fil är ett körbart program för Windows. På Windows dubbelklickar du på den för att köra den. På Mac eller Linux använder du CrossOver eller Wine - EXE-filer körs inte nativt utanför…
Öppna detaljer för .EXE →Kvalitet & vad man bör tänka på
- I varje praktiskt tillvägagångssätt körs Java fortfarande under huven -
jpackagepaketerar en privat JRE, Launch4j kräver att en är installerad; JVM är inte valfritt för Java-bytecode. - Webbplatser som påstår sig konvertera godtyckliga
.class-filer till en äkta fristående.exeär vilseledande; inget sådant verktyg existerar. - För att inspektera eller återställa källkoden från en
.class, använd JD-GUI eller CFR för att dekompilera tillbaka till.java.
Vanliga frågor
Kan jag byta namn på en .class-fil till .exe och köra den?
.class börjar med Javas «magic bytes» CA FE BA BE, inte en giltig PE-header.Vad producerar jpackage egentligen?
Kan jag omsluta en enskild .class-fil utan ett helt projekt?
public static void main-startpunkt; biblioteksklasser och fragment behöver alla beroenden paketerade i en JAR först.