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
- Archiwa
- Ocena: 5.0/5
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
- Zainstaluj Launch4j z oficjalnej dystrybucji projektu i najpierw zweryfikuj aplikację za pomocą
java -jar app.jar. - Otwórz Launch4j i ustaw Basic → Output file na ścieżkę taką jak
dist\MyApp.exe. - Ustaw Basic → Jar na
app.jar. Jeśli plik JAR nie zawiera wpisu manifestuMain-Class, określ entry point w sekcji Basic → Main class. - W sekcji JRE ustaw wymagany zakres wersji Java. Aby dystrybuować prywatny runtime, ustaw JRE → Bundled JRE path na katalog taki jak
runtimei dostarcz ten katalog obok pliku EXE. - Opcjonalnie wybierz plik
.icow sekcji Header → Icon, dodaj informacje o wersji i wybierz odpowiedni tryb konsoli. - 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.
- 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. - Potwierdź main class. Użyj wpisu manifestu, jeśli jest dostępny, lub podaj ją jawnie za pomocą
--main-class. - Uruchom packaging w systemie Windows. Typy installerów, takie jak
exeimsi, wymagają prerequisites do Windows packaging obsługiwanych przez daną wersję JDK, zwykle WiX; application image nie wymaga narzędzia instalacyjnego. - 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 - 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.
| 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 | — |
Sugerowane oprogramowanie i linki: konwertery jar na exe
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.