Jeśli mam plik źródłowy Java (* .java) lub plik klasy (* .class), jak mogę przekonwertować go na plik .exe?
Potrzebuję również instalatora dla mojego programu.
Jeśli mam plik źródłowy Java (* .java) lub plik klasy (* .class), jak mogę przekonwertować go na plik .exe?
Potrzebuję również instalatora dla mojego programu.
Odpowiedzi:
Narzędzie Java Packager kompiluje, pakuje i przygotowuje aplikacje Java i JavaFX do dystrybucji. Polecenie javapackager to wersja wiersza polecenia.
- Dokumentacja Oracle
Te javapackager
statki gospodarcze z JDK. Może generować pliki .exe z -native exe
flagą, między innymi.
WinRun4j to program uruchamiający java dla systemu Windows. Jest to alternatywa dla javaw.exe i zapewnia następujące korzyści:
- Używa pliku INI do określania ścieżki klasy, klasy głównej, argumentów vm, argumentów programu.
- Niestandardowa nazwa pliku wykonywalnego wyświetlana w menedżerze zadań.
- Dodatkowe argumenty JVM przemawiają za bardziej elastycznym użyciem pamięci.
- Wbudowany zamiennik ikon niestandardowych.
- [więcej punktów po kuli]
- Strona internetowa WinRun4J
WinRun4J to narzędzie typu open source. Ma wiele funkcji.
Pakuje plik JAR, zasoby i JVM do dystrybucji w systemach Windows, Linux i Mac OS X, dodając natywny plik wykonywalny, aby wyglądał jak natywna aplikacja. Packr jest najbardziej odpowiedni dla aplikacji GUI.
- packr README
packr to kolejne narzędzie typu open source.
JSmooth to Java Executable Wrapper. Tworzy rodzime programy uruchamiające Windows (standardowe .exe) dla aplikacji Java. Sprawia, że wdrażanie Java jest znacznie płynniejsze i przyjazne dla użytkownika, ponieważ może samodzielnie znaleźć każdą zainstalowaną maszynę wirtualną Java.
- Strona internetowa JSmooth
JSmooth jest open source i ma funkcje, ale jest bardzo stary. Ostatnie wydanie miało miejsce w 2007 roku.
JexePack to narzędzie wiersza polecenia (idealne do automatycznego tworzenia skryptów), które pozwala spakować aplikację Java (pliki klas), opcjonalnie wraz z jej zasobami (takimi jak GIF / JPG / TXT / itp.), W jednym skompresowanym 32-bitowym pliku EXE systemu Windows , który działa przy użyciu środowiska Java Runtime Environment firmy Sun. Obsługiwane są zarówno aplikacje konsoli, jak i okna.
- Strona internetowa JexePack
JexePack to wersja próbna. Płatność jest wymagana do użytku produkcyjnego, a pliki exe utworzone za pomocą tego narzędzia będą wyświetlać „przypomnienia” bez zapłaty. Ostatnie wydanie miało miejsce w 2013 roku.
InstallAnywhere ułatwia programistom tworzenie profesjonalnych programów instalacyjnych dla dowolnej platformy. Dzięki InstallAnywhere szybko dostosujesz się do zmian w branży, szybciej wejdziesz na rynek i zapewnisz angażującą obsługę klienta. I poznaj podatność komponentów OSS twojego projektu przed wysyłką.
- Witryna InstallAnywhere
InstallAnywhere to pakiet komercyjny / korporacyjny, który generuje instalatory programów opartych na Javie. Prawdopodobnie jest w stanie tworzyć pliki .exe.
Alternatywą dla plików .exe jest utworzenie pliku JAR, który uruchamia się automatycznie po dwukrotnym kliknięciu, dodając punkt wejścia do manifestu JAR .
Doskonałym źródłem informacji na ten temat jest artykuł Excelsiora „ Konwersja Java na EXE - dlaczego, kiedy, kiedy nie i jak ”.
Zobacz także artykuł towarzyszący „ Najlepsze narzędzia do konwersji JAR na EXE, bezpłatne i komercyjne ”.
Launch4j to wieloplatformowe narzędzie do pakowania aplikacji Java dystrybuowanych jako słoiki w lekkich natywnych plikach wykonywalnych Windows. Plik wykonywalny można skonfigurować tak, aby wyszukiwał określoną wersję środowiska JRE lub używał wersji dołączonej, i można ustawić opcje środowiska wykonawczego, takie jak początkowa / maksymalna wielkość sterty. Opakowanie zapewnia również lepsze wrażenia użytkownika dzięki ikonie aplikacji, natywnemu ekranowi powitalnemu sprzed środowiska JRE, niestandardowej nazwie procesu i stronie pobierania Java w przypadku, gdy nie można znaleźć odpowiedniego środowiska JRE.
- Strona internetowa Launch4j
AKTUALIZACJA: GCJ nie żyje. Został oficjalnie usunięty z projektu GCC w 2016 r. Nawet wcześniej został praktycznie porzucony na siedem lat, aw każdym razie nigdy nie był wystarczająco kompletny, aby służyć jako realna alternatywna implementacja Java.
Znajdź inny kompilator Java AOT.
GCJ: Kompilator GNU dla Java może kompilować kod źródłowy Java na natywny kod maszynowy, w tym pliki wykonywalne systemu Windows.
Chociaż nie wszystko w Javie jest obsługiwane przez GCJ, szczególnie komponenty GUI (zobacz Jakie obsługiwane są Java API? Jak kompletne jest wsparcie? Pytanie z FAQ ). Nie korzystałem zbyt często z GCJ, ale po ograniczonych testach, które przeprowadziłem z aplikacjami konsolowymi, wydaje się to w porządku.
Wadą użycia GCJ do utworzenia samodzielnego pliku wykonywalnego jest to, że rozmiar wynikowego pliku EXE może być dość duży. Pewnego razu skompilowałem trywialną aplikację konsolową w GCJ, czego rezultatem był plik wykonywalny o wielkości około 1 MB. (Mogą to być sposoby, których nie jestem świadomy. Inną opcją byłyby wykonywalne programy kompresujące.)
Jeśli chodzi o instalatory typu open source, Nullsoft Scriptable Install System to instalator skryptowy. Jeśli jesteś ciekawy, istnieją przykłady podane przez użytkowników, w jaki sposób wykryć obecność środowiska JRE i zainstalować go automatycznie, jeśli wymagane środowisko JRE nie zostało zainstalowane. (Żeby Cię poinformować, wcześniej nie korzystałem z NSIS.)
Aby uzyskać więcej informacji na temat używania NSIS do instalowania aplikacji Java, zapoznaj się z moją odpowiedzią na pytanie „ Jaki jest najlepszy sposób dystrybucji aplikacji Java? ”
Możesz utworzyć plik wsadowy z następującym kodem:
start javaw -jar JarFile.jar
i przekonwertować .bat na .exe za pomocą dowolnego konwertera .bat na .exe.
Używamy Install4J do budowania instalatorów dla środowisk Windows lub Unix.
Można go łatwo dostosować do momentu, w którym chcesz pisać skrypty dla specjalnych akcji, których nie można wykonać za pomocą standardowych okien dialogowych. Ale chociaż konfigurujemy z nim usługi Windows, używamy tylko standardowych składników.
Myślę, że Launch4J pochodzi z tej samej firmy (tylko program uruchamiający - bez instalatora).
PS: niestety nie otrzymuję zapłaty za to poparcie. Po prostu lubię to narzędzie.
Najnowsza wersja Java Web Start została ulepszona, aby umożliwić dobrą pracę w trybie offline, a także umożliwić „instalację lokalną”. Warto przyjrzeć się.
EDIT 2018: Java Web Start nie jest już dołączany do najnowszych JDK. Zamiast tego Oracle dąży do „wdrożenia aplikacji lokalnie za pomocą dołączonego modelu JRE”.
Jeśli potrzebujesz przekonwertować całą aplikację na kod macierzysty, tj. Plik DLL plus DLL, istnieje ExcelsiorJET . Odkryłem, że działa dobrze i stanowi alternatywę dla pakietu JRE.
Powiedziałbym, że launch4j jest najlepszym narzędziem do konwersji kodu źródłowego Java (.java) do pliku .exe. Możesz nawet dołączyć do niego plik JRE do dystrybucji, a exe można nawet oznaczyć ikoną. Chociaż zwiększa się rozmiar aplikacji, zapewnia ona, że aplikacja będzie działała idealnie, nawet jeśli użytkownik nie ma zainstalowanego jre. Zapewnia również, że możesz podać konkretny plik wymagany dla Twojej aplikacji bez konieczności osobnej instalacji przez użytkownika. Niestety java traci na znaczeniu. Obsługa wielu platform jest całkowicie ignorowana, a ostateczna aplikacja jest obsługiwana tylko w systemie Windows. Ale to nie jest wielka sprawa, jeśli obsługujesz tylko użytkowników systemu Windows.
Alternatywnie możesz użyć translatora Java-C-C (np. JCGO ) i skompilować wygenerowane pliki C do natywnego pliku binarnego (.exe) dla platformy docelowej.
Mogę wybaczyć, że nie mam zamiaru konwertować programu Java do aplikacji .exe i mam swoje powody. Najważniejszym z nich jest to, że program Java może zostać skompilowany do pliku jar z wielu IDE. Gdy program ma 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 ideą, że programy Java nie powinny być konwertowane na Exe, chyba że jest to bardzo konieczne. Zawsze można pisać pliki .bat, które uruchamiają program Java, gdy jest to plik jar.
jeśli naprawdę konieczne jest przekonwertowanie go na exe, konwerter Jar2Exe po cichu robi to i można również dołączyć biblioteki, które są kompilowane razem z aplikacją główną.