Jak mogę przekonwertować mój program Java do an.plik exe? [zamknięte]

Jeśli mam plik źródłowy Javy (*.java) lub plik klasy (*.klasy), Jak mogę go przekonwertować na a .plik exe?

Potrzebuję też instalatora do mojego programu.

Author: xskxzr, 2008-09-29

13 answers

Niektóre opcje:

Wykonywalny Plik Jar

Zobacz także dystrybucja aplikacji jako pliku wykonywalnego Jar oraz Oracle docs Jak utworzyć plik jar, który można uruchomić za pomocą podwójnego kliknięcia na Windows.

JSmooth

(EDIT: ostatnie wydanie było w 2007)

JSmooth jest opakowaniem wykonywalnym w języku Java. Tworzy natywne programy uruchamiające Windows (standard .exe) dla aplikacji java. Tworzy Javę wdrożenie jest znacznie płynniejsze i łatwiejsze w obsłudze, ponieważ jest w stanie samodzielnie znaleźć dowolną zainstalowaną maszynę Wirtualną Java.

JexePack

(edycja: Shareware: Ostatnia aktualizacja w wersji 08/29/2013-8.4)

JexePack to narzędzie wiersza poleceń (świetne do automatycznego tworzenia skryptów), które pozwala na spakowanie aplikacji Java (pliki klas), opcjonalnie wraz z jej zasobami (takimi jak GIF / JPG / TXT / etc), w pojedynczy skompresowany 32-bitowy Windows EXE, który działa przy użyciu środowiska Java Runtime firmy Sun Środowisko. Obsługiwane są zarówno aplikacje konsolowe, jak i okienne.

LaunchAnywhere

(EDIT: komercyjny z darmowym Trialem, ostatnia wersja jest z 2012)

Plik wykonywalny LAX jest plikiem wykonywalnym używanym do uruchamiania aplikacji Java na dowolnej platformie zgodnej z LaunchAnywhere. Obecnie InstallAnywhere tworzy LaunchAnywheres w systemach Windows 95/98 / NT / 2000 / Me, Solaris, Linux i Mac OS X. LaunchAnywhere umożliwia użytkownikom końcowym dwukrotne kliknięcie ikony (Windows lub Mac OS X) lub wpisz jedno polecenie (UNIX), aby uruchomić aplikację Java.

Zobacz także dla odniesienia Konwersja Javy do EXE: dlaczego, Kiedy, kiedy nie i jak

 287
Author: Jay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-23 20:00:48

Launch4j

Launch4j to wieloplatformowe narzędzie do owijania aplikacji Java dystrybuowanych jako jars w lekkich natywnych plikach wykonywalnych Windows. Plik wykonywalny można skonfigurować tak, aby wyszukiwał określoną wersję JRE lub używał wiązanej, a także można ustawić opcje wykonawcze, takie jak Początkowy/maksymalny rozmiar sterty. Opakowanie zapewnia również lepsze wrażenia użytkownika dzięki ikonie aplikacji, natywnemu ekranowi powitalnemu pre-JRE, niestandardowej nazwie procesu i stronie pobierania Java w przypadku, gdy nie można znaleźć odpowiedniego JRE.

 103
Author: the.duckman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 08:10:37

GCJ: kompilator GNU dla Javy może skompilować kod źródłowy Javy do natywnego kodu maszynowego, w tym plików wykonywalnych dla systemu Windows.

Chociaż nie wszystko w Javie jest obsługiwane pod GCJ, zwłaszcza komponenty GUI (patrz jakie API Java są obsługiwane? Jak Kompletne jest wsparcie? pytanie z FAQ ). Nie używałem GCJ dużo, ale z ograniczonych testów zrobiłem z aplikacji konsoli, wydaje się w porządku.

Jeden minus używania GCJ do tworzenia samodzielne wykonywalne jest to, że rozmiar wynikowego EXE może być dość duży. Kiedyś skompilowałem trywialną aplikację konsolową w GCJ i wynik był wykonywalny około 1 MB. (Mogą być sposoby obejścia tego, czego nie jestem świadomy. Inną opcją będą programy kompresji wykonywalnej.)

Jeśli chodzi o instalatory open-source, Nullsoft Scriptable Install System jest instalatorem skryptowym. Jeśli jesteś ciekawy, są przykłady dodane przez użytkownika Jak Wykryj obecność JRE i zainstaluj go automatycznie, jeśli wymagany JRE nie jest zainstalowany. (Tak dla twojej wiadomości, nie używałem wcześniej NSIS.)

Aby uzyskać więcej informacji na temat korzystania z NSIS do instalacji aplikacji Java, proszę spojrzeć na moja odpowiedź na pytanie "jaki jest najlepszy sposób dystrybucji aplikacji Java?"

 34
Author: coobird,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:42

Możesz wypróbować wiele wrapperów Javy, takich jak JSmooth, JWrapper i inne narzędzia, ale możesz również zrobić .bat o następującym kodzie:
start javaw -jar JarFile.jar
i przekonwertować bat na exe używając any .bat do .konwerter exe.

 24
Author: bugwheels94,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-21 18:04:17

Używamy Install4J do budowania instalatorów dla środowisk windows lub unix.

Jest łatwo konfigurowalny do tego stopnia, że chcesz pisać skrypty do specjalnych akcji, których nie można wykonać za pomocą standardowych dialogów. Ale mimo tego, że konfigurujemy usługi windows z nim, używamy tylko standardowych komponentów.

  • installer + launcher
  • windows lub unix
  • scriptable in Java
  • zadanie ant
  • wiele konfigurowalnych standardowych paneli i działania
  • opcjonalnie zawiera lub pobiera JRE
  • może również uruchamiać usługi windows
  • Wiele języków

Myślę, że Launch4J jest z tej samej firmy (tylko launcher - bez instalatora).

PS: niestety nie płacą mi za to poparcie. Po prostu lubię to narzędzie.

 15
Author: Stroboskop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 13:01:46

Najnowszy Java Web Start został ulepszony, aby umożliwić dobrą pracę w trybie offline, a także umożliwić "lokalną instalację". Warto się temu przyjrzeć.

Edycja 2018: Java Web Start nie jest już pakietem z najnowszymi JDK. Oracle dąży do "wdrożenia aplikacji lokalnie z zamkniętym modelem JRE".

 15
Author: Thorbjørn Ravn Andersen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-29 15:07:45

IMHO JSmooth wygląda na całkiem dobrą robotę.

 9
Author: jussij,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-25 04:18:21

Jeśli chcesz przekonwertować całą aplikację na kod natywny, czyli exe plus biblioteki DLL, jest ExcelsiorJET . Okazało się, że działa dobrze i stanowi alternatywę dla łączenia JRE.

 8
Author: mdma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-29 01:38:47

Powiedziałbym, że launch4j jest najlepszym narzędziem do konwersji kodu źródłowego Javy(.java) do .plik exe Możesz nawet spakować jre z nim do dystrybucji, a exe może być nawet ikonifikowany. Chociaż rozmiar aplikacji wzrasta, zapewnia ona, że aplikacja będzie działać idealnie, nawet jeśli użytkownik nie ma zainstalowanego jre. Zapewnia również, że jesteś w stanie dostarczyć konkretny jre wymagany dla aplikacji bez konieczności instalowania go osobno. Ale niestety java traci jego znaczenie. Jego obsługa wielu platform jest całkowicie ignorowana, a ostateczna aplikacja jest obsługiwana tylko dla systemu windows. Ale to nic wielkiego, jeśli obsługujesz tylko użytkowników systemu windows.

 5
Author: Pratanu Mandal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-27 18:40:48

Możesz użyć Janel . Ten ostatni działa jako program uruchamiający aplikację lub program uruchamiający usługę (dostępny od 4.x).

 5
Author: L. BIZE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-10 09:13:54

Alternatywnie możesz użyć jakiegoś tłumacza java-to-c (np. JCGO) i skompilować wygenerowane pliki C do natywnego pliku binarnego (.exe) plik dla platformy docelowej.

 4
Author: Ivan Maidanski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-28 14:26:14

Można mi wybaczyć, że jestem przeciwny konwersji programu java naaplikacja exe i mam swoje powody. głównym jest to, że program java może być skompilowany do pliku jar z wielu IDE. gdy program jest w .format jar, może działać na wielu platformach w przeciwieństwie do .exe, który działałby tylko w bardzo ograniczonym środowisku. Jestem za tym, aby programy Javy nie były konwertowane do Exe, chyba że jest to bardzo konieczne. Zawsze można pisać .pliki bat uruchamiające program Java podczas gdy jest to plik jar.

Jeśli jest to naprawdę konieczne, aby przekonwertować go do exe, Jar2Exe converter cicho robi to i można również dołączyć biblioteki, które są skompilowane razem z główną aplikacją.

 3
Author: ErrorNotFoundException,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-19 13:16:24

Możesz przekonwertować jar na exe używając jar2exe. Jednak musisz kupić oprogramowanie. Jeśli potrzebujesz oprogramowania open source, proponuję JSmooth .

 2
Author: Raghunandan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-25 04:19:52