Dlaczego konwertować CLASS na EXE?
Kod bajtowy JVM to niezależny od platformy zestaw instrukcji interpretowany w czasie rzeczywistym przez Java Virtual Machine. Plik Windows .exe zawiera natywny kod maszynowy x86/x64 wykonywany bezpośrednio przez procesor. Są to fundamentalnie różne formaty bez wspólnego zestawu instrukcji, co uniemożliwia mechaniczną translację na natywny plik wykonywalny.
Jak przekonwertować CLASS na EXE
jpackage (JDK 14+) FREE
Najpierw spakuj swoje pliki .class do pliku JAR za pomocą jar cfe app.jar MainClass *.class, a następnie uruchom jpackage --input . --main-jar app.jar --name MyApp --type exe, aby utworzyć instalator Windows, który zawiera prywatne środowisko JRE.
Launch4j FREE
Najpierw spakuj swoje klasy do pliku JAR, a następnie użyj Launch4j, aby opakować JAR w lekki „stub” .exe, który lokalizuje zainstalowane środowisko JRE w czasie uruchamiania.
O tych formatach
Plik CLASS to skompilowany kod bajtowy Java - wynik działania polecenia javac na pliku źródłowym .java. Aby go uruchomić, musisz mieć zainstalowane środowisko Java (JDK), a następnie użyć…
Otwórz szczegóły .CLASS →Plik EXE to program wykonywalny systemu Windows. W systemie Windows kliknij go dwukrotnie, aby go uruchomić. W systemach Mac lub Linux użyj CrossOver lub Wine - pliki EXE nie działają…
Otwórz szczegóły .EXE →Jakość i na co uważać
- W każdym praktycznym podejściu Java nadal działa pod spodem -
jpackagedołącza prywatne JRE, Launch4j wymaga zainstalowanego środowiska; JVM nie jest opcjonalna dla kodu bajtowego Java. - Strony twierdzące, że konwertują dowolne pliki
.classna prawdziwy, samodzielny plik.exe, wprowadzają w błąd; takie narzędzie nie istnieje. - Aby sprawdzić lub odzyskać kod źródłowy z pliku
.class, użyj JD-GUI lub CFR, aby przeprowadzić dekompilację z powrotem do.java.
Najczęściej zadawane pytania
Czy mogę zmienić nazwę pliku .class na .exe i go uruchomić?
.class zaczyna się od „magicznych bajtów” Javy CA FE BA BE, a nie od prawidłowego nagłówka PE.Co właściwie generuje jpackage?
Czy mogę opakować pojedynczy plik .class bez pełnego projektu?
public static void main; klasy biblioteczne i fragmenty wymagają wcześniejszego spakowania wszystkich zależności do pliku JAR.