Konwertuj jar do exe

Konwertuj JAR na EXE

Utwórz launcher dla Windows lub self-contained installer na podstawie pliku Java JAR.

Konwertuj pliki JAR online

Nie mamy jeszcze dedykowanego konwertera online dla JAR na EXE, ale pliki JAR możesz przekonwertować online na te formaty:

Jak konwertować jar do exe

Użytkownik systemu Windows może potrzebować pliku EXE, gdy aplikację Java trzeba uruchamiać dwukrotnym kliknięciem lub dystrybuować wśród osób, które nie mają doświadczenia z wierszem poleceń Java. Rezultatem jest zwykle Windows launcher lub installer, a nie konwersja Java bytecode na natywny machine code.

Czym jest format JAR

JAR (Java Archive) to pakiet oparty na formacie ZIP, zawierający skompilowane pliki .class, biblioteki zależności, obrazy, pliki konfiguracyjne i metadane. Kompilatory Java, środowiska IDE, takie jak IntelliJ IDEA i Eclipse, oraz build tools, takie jak Maven i Gradle, tworzą pliki JAR.

Runnable JAR zawiera wpis manifestu, taki jak Main-Class: com.example.Main, i można go uruchomić za pomocą java -jar app.jar. Komputer potrzebuje zgodnego Java runtime; JDK również dostarcza wymagane runtime, natomiast standalone JRE może wystarczyć w przypadku starszych dystrybucji Java. Niektóre pliki JAR są bibliotekami, a nie aplikacjami, i nie mają entry pointu do uruchomienia.

Czym jest format EXE

EXE to plik Windows Portable Executable używany przez aplikacje, launchery, installery i usługi. EXE launcher może zapewniać uruchamianie dwukrotnym kliknięciem, ikonę, informacje o wersji Windows, obsługę wiersza poleceń, sprawdzanie wersji Java oraz ustawienie okna konsoli.

Wrapper EXE nadal uruchamia program Java za pośrednictwem JVM. Application image lub installer może zawierać prywatny Java runtime, dzięki czemu użytkownicy nie muszą instalować Java osobno. Wynik pozostaje zależny od systemu Windows i nie działa natywnie w systemach macOS ani Linux.

Jak utworzyć EXE z pliku JAR

Użycie Launch4j jako lekkiego launchera

  1. Zainstaluj Launch4j z oficjalnej dystrybucji projektu i najpierw zweryfikuj aplikację za pomocą java -jar app.jar.
  2. Otwórz Launch4j i ustaw Basic → Output file na ścieżkę taką jak dist\MyApp.exe.
  3. Ustaw Basic → Jar na app.jar. Jeśli plik JAR nie zawiera wpisu manifestu Main-Class, określ entry point w sekcji Basic → Main class.
  4. W sekcji JRE ustaw wymagany zakres wersji Java. Aby dystrybuować prywatny runtime, ustaw JRE → Bundled JRE path na katalog taki jak runtime i dostarcz ten katalog obok pliku EXE.
  5. Opcjonalnie wybierz plik .ico w sekcji Header → Icon, dodaj informacje o wersji i wybierz odpowiedni tryb konsoli.
  6. Zbuduj plik EXE i przetestuj go w czystym systemie Windows. Bez dołączonego runtime system ten musi mieć zainstalowany zgodny Java runtime.

Launch4j tworzy launcher; nie naprawia brakujących zależności, nie zmienia Java bytecode na natywny code i automatycznie nie dostarcza kompletnego runtime. Ścieżki względne oraz katalog bundled runtime muszą odpowiadać układowi dostarczonemu użytkownikom.

Użycie jpackage jako samodzielnej aplikacji

jpackage jest dołączony do współczesnych wydań JDK i tworzy Windows application images oraz installery. Jest preferowany, gdy aplikacja powinna zawierać własny runtime i metadane instalacji.

  1. Zbuduj i przetestuj aplikację, a następnie umieść główny plik JAR oraz wymagane pliki JAR zależności w katalogu wejściowym, takim jak dist. Zadanie dystrybucyjne Maven lub Gradle może utworzyć ten katalog.
  2. Potwierdź main class. Użyj wpisu manifestu, jeśli jest dostępny, lub podaj ją jawnie za pomocą --main-class.
  3. Uruchom packaging w systemie Windows. Typy installerów, takie jak exe i msi, wymagają prerequisites do Windows packaging obsługiwanych przez daną wersję JDK, zwykle WiX; application image nie wymaga narzędzia instalacyjnego.
  4. Uruchom polecenie podobne do:
    jpackage --type exe --input dist --name MyApp --main-jar app.jar --main-class com.example.Main --dest release --win-shortcut --win-menu
  5. Użyj --icon app.ico, aby ustawić ikonę, oraz --app-version 1.0.0, aby ustawić wyświetlaną wersję. Przetestuj zarówno instalację, jak i uruchamianie na komputerze z systemem Windows bez development JDK.

Aby utworzyć przenośny katalog aplikacji zamiast installera, użyj --type app-image. Wynikowy image zawiera prywatny runtime i jest zwykle znacznie większy niż wrapper Launch4j.

Ograniczenia zgodności i jakości

  • Aplikacja potrzebuje prawidłowego entry pointu, wszystkich wymaganych zależności oraz zgodnych modułów Java. Launcher nie naprawi brakujących klas, nieprawidłowych ścieżek zasobów ani niezgodnej wersji Java.
  • Testuj z wydaniem Java i architekturą CPU przeznaczonymi dla użytkowników. JNI lub inne biblioteki natywne mogą wymagać osobnych buildów 32-bitowych i 64-bitowych oraz plików binarnych przeznaczonych dla systemu Windows.
  • Dołączenie runtime zwiększa rozmiar dystrybucji, ale eliminuje zależność od osobno zainstalowanego Java runtime. Przed redystrybucją sprawdź licencję dostawcy runtime oraz jego politykę aktualizacji zabezpieczeń.
  • Nowo zbudowane, niepodpisane pliki EXE i installery mogą wywoływać ostrzeżenia Microsoft Defender lub innych narzędzi bezpieczeństwa. Podpisanie launchera i installera kodem za pomocą odpowiedniego certyfikatu ogranicza liczbę ostrzeżeń, ale nie gwarantuje ich całkowitego braku.
  • Aby uzyskać rzeczywiście natywny executable zamiast JVM launchera, użyj narzędzia takiego jak GraalVM Native Image, jeśli aplikacja je obsługuje. Reflection, dynamic class loading, JNI i niektóre funkcje frameworków mogą wymagać konfiguracji lub mogą nie działać.

Usługi konwersji online

Nie istnieje niezawodna, uniwersalna usługa online, która na podstawie przesłanego pliku JAR potrafiłaby określić entry point aplikacji Java, jej zależności, runtime, biblioteki natywne oraz wymagania dotyczące Windows packaging. Sites do archive conversion mogą zmienić nazwę pliku JAR lub go rozpakować, ale nie tworzy to funkcjonalnego pliku EXE. W przypadku oprogramowania własnościowego lub wykonywalnego używaj lokalnych narzędzi, takich jak Launch4j lub jpackage; przesłanie pliku JAR może również ujawnić kod źródłowy, osadzone dane uwierzytelniające lub inne poufne dane.

Porównanie formatu JAR z EXE

Jak formaty JAR i EXE wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików JAR i EXE
Cecha .JAR Java Archive .EXE Portable Executable
Otwarty standard Tak Nie
Kompresja Oba Bez kompresji
Typowy rozmiar pliku Średni Duży
Otwiera się w przeglądarce internetowej Nie Nie
Dalsza edycja Ograniczone Nie do bezpośredniej edycji
Obsługa metadanych Podstawowy Rozbudowany
Czytelny tekstowo Nie Nie
Najlepszy do Osadzanie w aplikacjach Osadzanie w aplikacjach
Wprowadzono 1996 1993
Twórca Oracle (originally Sun Microsystems) Microsoft
Typ MIME application/java-archive —

Najczęściej zadawane pytania

Czy można przekonwertować JAR na EXE bez zmiany kodu Java?

Tak, launcher systemu Windows może uruchomić wykonywalny plik JAR bez zmiany jego kodu bajtowego Java. Tworzy to wrapper systemu Windows, a nie przekształca programu Java w natywny kod systemu Windows.

Dlaczego konwersja JAR na EXE kończy się niepowodzeniem albo program od razu się otwiera i zamyka?

Plik JAR może nie zawierać prawidłowego punktu wejścia klasy głównej albo może być biblioteką, a nie wykonywalną aplikacją. Brakujące zależności, zasoby lub nieprawidłowe ścieżki również mogą spowodować natychmiastowe zamknięcie launchera.

Czy konwersja JAR na EXE sprawia, że plik jest mniejszy lub trudniejszy do edycji?

Zwykle sprawia, że wynik jest większy, gdy dołączone jest środowisko uruchomieniowe Java lub pliki instalatora, a pierwotna zawartość JAR pozostaje wewnątrz launchera lub obok niego. Kod Java nie staje się natywnie edytowalny jako EXE, więc zmiany zazwyczaj wymagają modyfikacji i ponownego zbudowania źródłowego pliku JAR.

Dodatkowe formaty dla konwersji pliku
jar

Konwersja odwrotna

Konwersja do .exe
z innych formatów

Udostępnij w mediach społecznościowych: