prosty hack dla apletów: napisz kod C z main i wywołanie funkcji „system” jak system („appletviewer java_src_file”);
Madhusoodan P
1
Czy .exe działa w systemie Windows bez środowiska JRE?
Arpit Agarwal
Żeby być kompletnym (nie próbowałem tego sam, ponieważ potrzebowaliśmy opakowania exe, a nie instalatora): Pakiety instalatora można również tworzyć za pomocą javapackager (patrz docs.oracle.com/javase/8/docs/technotes/guides/deploy/... ) . Aby utworzyć instalator EXE lub MSI, należy dodatkowo pobrać i zainstalować Inno Setup lub WiX.
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.
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.
Pliki wykonywalne JAR
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 .
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.
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.)
Dobre opakowanie przynosi środowisko JRE lub instaluje je w razie potrzeby i radzi sobie z błędami.
Thorbjørn Ravn Andersen
16
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.
instalator + program uruchamiający
Windows lub Unix
skryptowalny w Javie
zadanie mrówki
wiele konfigurowalnych standardowych paneli i działań
opcjonalnie zawiera lub pobiera środowisko JRE
może również uruchomić usługi Windows
wiele językó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”.
Najwyraźniej JWS tak mocno zaostrzył zabezpieczenia, że uruchomienie wymaga dużo więcej wysiłku niż wcześniej. Może się jednak okazać przydatny dla instalatorów.
Thorbjørn Ravn Andersen
9
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.
Jestem bardzo niewiarygodny skuteczności tej metody. Musiałbym to zobaczyć, aby w to uwierzyć (pomyśl o tym, że większość kodu Java to wywołania API do JRE, a wszystko to nie jest obecne w C, bez względu na różnice w działaniu języka).
Camilo Martin,
3
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ą.
Rzecz w tym, że moc Javy polega na przenośności, ale wiele osób potrzebuje tylko podstawowego exe systemu Windows. Osobiście uwielbiam koncepcję Java ... ale chciałbym rozpowszechniać coś, co moi użytkownicy mogliby uruchomić, bez konieczności pobierania środowiska JRE.
Balmipour,
2
Możesz przekonwertować jar do exe za pomocą jar2exe . Jednak musisz kupić oprogramowanie. Jeśli potrzebujesz oprogramowania typu open source, sugerowałbym JSmooth .
Odpowiedzi:
javapackager
Te
javapackager
statki gospodarcze z JDK. Może generować pliki .exe z-native exe
flagą, między innymi.WinRun4J
WinRun4J to narzędzie typu open source. Ma wiele funkcji.
pakujący
packr to kolejne narzędzie typu open source.
JSmooth
JSmooth jest open source i ma funkcje, ale jest bardzo stary. Ostatnie wydanie miało miejsce w 2007 roku.
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
InstallAnywhere to pakiet komercyjny / korporacyjny, który generuje instalatory programów opartych na Javie. Prawdopodobnie jest w stanie tworzyć pliki .exe.
Pliki wykonywalne JAR
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 .
Po więcej informacji
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 ”.
źródło
Uruchom4j
źródło
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? ”
źródło
Możesz utworzyć plik wsadowy z następującym kodem:
i przekonwertować .bat na .exe za pomocą dowolnego konwertera .bat na .exe.
źródło
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.
źródło
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”.
źródło
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.
źródło
IMHO JSmooth wydaje się wykonywać całkiem niezłą robotę.
źródło
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.
źródło
Możesz użyć Janela . Ten ostatni działa jako program uruchamiający aplikacje lub program uruchamiający usługi (dostępny od 4.x).
źródło
Alternatywnie możesz użyć translatora Java-C-C (np. JCGO ) i skompilować wygenerowane pliki C do natywnego pliku binarnego (.exe) dla platformy docelowej.
źródło
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ą.
źródło
Możesz przekonwertować jar do exe za pomocą jar2exe . Jednak musisz kupić oprogramowanie. Jeśli potrzebujesz oprogramowania typu open source, sugerowałbym JSmooth .
źródło