Hvorfor konvertere CLASS til EXE?
JVM-bytecode er et platformuafhængigt instruktionssæt, der fortolkes ved kørsel af Java Virtual Machine. En Windows .exe indeholder indfødt x86/x64-maskinkode, der udføres direkte af CPU'en. Disse er fundamentalt forskellige formater uden fælles instruktionssæt, hvilket gør mekanisk oversættelse til en indfødt eksekverbar fil umulig.
Sådan konverterer du CLASS til EXE
jpackage (JDK 14+) FREE
Pak først dine .class-filer i en JAR med jar cfe app.jar MainClass *.class, og kør derefter jpackage --input . --main-jar app.jar --name MyApp --type exe for at oprette et Windows-installationsprogram, der inkluderer en privat JRE.
Launch4j FREE
Pak dine klasser i en JAR først, og brug derefter Launch4j til at pakke JAR-filen ind i en letvægts .exe-stub, der finder en installeret JRE ved kørsel.
Om disse formater
En CLASS-fil er kompileret Java-bytecode - det output, som javac producerer fra en .java-kildefil. For at køre den skal du have Java (et JDK) installeret og derefter bruge kommandoen «java…
Åbn .CLASS detaljer →En EXE-fil er et Windows-program. På Windows skal du dobbeltklikke på den for at køre den. På Mac eller Linux skal du bruge CrossOver eller Wine - EXE-filer kører ikke indfødt uden for…
Åbn .EXE detaljer →Kvalitet & hvad man skal være opmærksom på
- I enhver praktisk tilgang kører Java stadig nedenunder -
jpackageinkluderer en privat JRE, Launch4j kræver, at en er installeret; JVM er ikke valgfri for Java-bytecode. - Websteder, der påstår at konvertere vilkårlige
.class-filer til en ægte selvstændig.exe, er vildledende; et sådant værktøj findes ikke. - For at inspicere eller gendanne kildekoden fra en
.class, skal du bruge JD-GUI eller CFR til at dekompilere tilbage til.java.
Ofte stillede spørgsmål
Kan jeg omdøbe en .class-fil til .exe og køre den?
.class starter med Javas magic bytes CA FE BA BE, ikke en gyldig PE-header.Hvad producerer jpackage egentlig?
Kan jeg pakke en enkelt .class-fil uden et fuldt projekt?
public static void main indgangspunkt; biblioteksklasser og fragmenter skal have alle afhængigheder pakket i en JAR først.