Plik .exe bespośrednio z plików .java.

0

Czy istnieje program lub wtyczka do Eclipse, który tworzy plik .exe bez tworzenia pliku .jar? Co właściwie robi JVM , gdy się klika w plik .jar? Ładuje klasy, wypakowuje do temp?

0

Tu masz opisane co robi JVM:
https://docs.oracle.com/javase/specs/jvms/se12/html/index.html

Ale generalnie nie musi nic wypakowywać.

0

Jak budujesz projekt Mavenem w Eclipsie to możesz użyć tego: http://launch4j.sourceforge.net/. Podpinasz pod projekt i w targecie wyrzuca Ci jara jak i exe'ka.

1

W javie nie kodze ale nie chodzi po porstu o wymagane srodowisko uruchomieniowe? Taki C# zostawia pliki w formie .dll potrzebne do uruchomienia aplikacji i potrzebny w przypadku c# jest .net framework. To normalne ze aplikacje po za plikiem .exe maja swoje wlasne pliki potrzebne do uruchomienia :)

0

Czyli nie powinno byź różnicy w czasie otwierania programu miedzy .exe, a .jar?

0

Dzięki.

1

Otwieranie .jar jest jak otwieranie .jpg - system szuka sobie skojarzonego programu do odpalania JARków bądź JPGów.

.jpg też możesz zamienić na .exe, ale pytanie jak. Możesz do pliku .exe zapakować .jpg razem z Photoshopem i wtedy po odpaleniu tego .exe będzie się odpalać Photoshop wyświetlający JPGa. Takie rozwiązanie będzie bardzo zasobożerne. Szybsze byłoby zostawienie .jpg i odpalenie go np przez wbudowaną w system pokazywarkę zdjęć.

Co właściwie robi JVM , gdy się klika w plik .jar? Ładuje klasy, wypakowuje do temp?

JVM nie rozpakowuje wstępnie JARów sam z siebie, ale niektóre biblioteki same to robią. Np w JARze jest 5 EXEków jako zasoby i żeby je odpalić trzeba je wypakować. Sam JVM natomiast traktuje JAR jako zwykłego ZIPa i na bieżąco strumieniuje zasoby do pamięci. Stąd np różnice w wydajności w zależności od tego czy JAR ma włączoną kompresję czy nie. Kompresja zwalnia odczytywanie JARa. Przykład tutaj: Program kompilowany chodzi szybciej niż budowany

PS:
JARa da się zamienić na natywną binarkę z wbudowanym okrojonym JVMem bez JITa i np dynamicznego ładowania bajtkodu, ale za to z całym bajtkodem skompliowanym do kodu natywnego. Działa tak https://www.graalvm.org/docs/reference-manual/aot-compilation/ Są jednak chyba też inne rozwiązania jak https://www.excelsiorjet.com/ które mają chyba więcej możliwości. Są to jednak rozwiązania niszowe, gdyż pierwsze jest jeszcze we wczesnej fazie rozwoju, a drugie kosztuje gruby hajs.

1 użytkowników online, w tym zalogowanych: 0, gości: 1