Jak połączyć środowisko JRE z Launch4j?

80

Mam Launch4J na swoim komputerze i jest to świetny program. Jedną z jego funkcji, która mnie interesuje, jest możliwość dołączenia środowiska JRE do ogólnego pliku .EXE. Jednak nie mogę znaleźć żadnej dokumentacji opisującej, jak to zrobić.

Jak połączyć środowisko JRE z plikiem EXE? Poza tym, gdzie mogę uruchomić kompaktowe, przenośne środowisko JRE? Łącza pobierania w witrynie Oracle dotyczą pakietów instalacyjnych.

CodeBunny
źródło
5
Launch4j umożliwia dołączenie środowiska JRE do Twojego exe, więc obok niego. Nie możesz go użyć do osadzenia środowiska JRE w swoim exe.
THelper
Co to w ogóle znaczy ...
DKIT

Odpowiedzi:

82

Po kilku próbach w końcu znalazłem obejście, aby dołączyć środowisko jre do mojej aplikacji:

Pakuję moją aplikację jako plik zip z następującymi folderami w środku:

containerFolder
|- jre
      |-bin (in bin there is java.exe)
      |-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)

W pliku xml launch4j konfiguruję jre w następujący sposób:

<jre>
    <path>../jre</path>
    <opt>-DgvSIG.confDir=../cfg</opt>
</jre>

Sztuczka polega na tym, że ścieżka nie prowadzi do pliku java.exe. Ścieżka do jre jest zależna od położenia pliku .exe i powinna wskazywać jeden folder przed plikiem java.exe

Folder jre, którego używam, to po prostu skopiuj i wklej z folderu jre zainstalowanego w systemie Windows.

Francisco Puga
źródło
4
Bardzo mi to pomogło! Dokumenty nie są na to zbyt jasne ... Działa jak urok :-)
Konrad 'ktoso' Malawski
Cześć, co to za ścieżka <path> ../jre </path> albo jest to istniejąca ścieżka, która znajduje się w folderze C: //..java, albo nowy instalator java JRE, który jest pobierany.
RajaReddy PolamReddy
@RajaReddyPolamReddy to ścieżka względna z pliku .exe do folderu, w którym znajduje się jre w aplikacji
Francisco Puga,
9
Pytanie dotyczyło spakowania środowiska JRE w EXE z uruchomieniem launch4j. Odpowiedź ta pokazuje, jak powiedzieć launch4j do korzystania z konkretnego środowiska JRE, które zostały wiązane ze swojej EXE, ale nie w środku. Wydaje się, że jest to najlepsze, co można zrobić za pomocą launch4j. (Inna odpowiedź poniżej pokazuje jeden sposób na utworzenie instalatora, który następnie zainstaluje zarówno twój EXE, jak i JRE, ale JRE nie będzie w EXE.)
Enwired
1
A co z JDK11 bez środowiska JRE?
Panagiss
12

Zrobiłem następujące i zadziałało dla mnie przy użyciu wersji Launch4j 3.11:

  1. Utworzono nowy folder dla mojej aplikacji (nazwany na przykład MyApp).
  2. Skopiowano plik jar z folderu dist projektu java do MyApp wraz z folderem lib.
  3. Utworzono folder o nazwie jre w folderze mojej aplikacji MyApp, więc teraz folder MyApp zawiera:
    • MyApp.jar
    • lib <- zawiera biblioteki wymagane przez moją aplikację java.
    • jre
  4. Skopiowano foldery bin i lib z folderu java jre (C: \ Program Files (x86) \ Java \ jre7) do MyApp \ jre
  5. W Launch4j po ustawieniu wszystkich wymaganych opcji, a następnie ustaw ścieżkę pakietu JRE na „jre”

    Opcje środowiska Launch4j JRE

  6. Upewnij się, że w opcjach wyszukiwania jest zaznaczona opcja „Używaj tylko prywatnych środowisk wykonawczych JDK”.
Ahmed Awad
źródło
6

Ten sam problem, co ty kolego. Nie martw się teraz. Wszystko to rozwiązuje z maksymalną głębokością, aby rozwiązać przyszłe rozwiązanie. Rozwiązanie, w jaki sposób można spakować środowisko JRE do pliku jar bez konieczności instalowania przez użytkownika oprogramowania Java lub nie. Twoja aplikacja java będzie działać.

  1. Skopiuj libi binfolder z folderu JRE do folderu dist projektu

jar do konwersji exe

  1. otwórz launch4j i wprowadź następujące ustawienie. wprowadź opis obrazu tutaj

Rzecz w tym, że musisz podać pełną ścieżkę do zawierającego javaw.exe.

Cieszyć się!!!!

Daniel Adenew
źródło
1
Umieść dowolny plik w folderze dist, powodując ten błąd podczas czyszczenia i kompilacji: Nie można usunąć pliku ...
ParyżN
0

Właśnie to zrobiłem. Powyżej jasno opiszę metodę dołączania jre.

Tutaj po prostu dzielę się doświadczeniem, z którym walczyłem. Jeśli chcesz utworzyć plik instalatora exe po utworzeniu opakowania exe przez launch4j, zwróć uwagę na ścieżkę do pliku dla launch4j i jre. Oto moja ścieżka, którą użyłem do rozwiązania swoich problemów:

launch4j, bin / jre, zasoby / bin / jre.

launch4j, bin i resources są na tym samym poziomie.

Xloon
źródło
-2

Jre zwykle można znaleźć w folderze SDK. Tak, linki online są instalatorami, ale po zainstalowaniu środowisko JRE znajduje się teraz na dysku lokalnym. Mój znajduje się w

${jdk folder}\jre

Części, których nie potrzebujesz ze środowiska JRE, można prawdopodobnie usunąć ręcznie, jeśli naprawdę chcesz (nie jestem pewien, co jest dostępne online).

hbhakhra
źródło
Jak umieścić go w pliku EXE? Próbuję spakować wszystko w jar, żeby nie musieć się martwić, jeśli użytkownik ma zainstalowaną Javę. Zdaję sobie sprawę, że samo pobranie javy jest prawdopodobnie najlepszym pomysłem; jednak chciałbym poeksperymentować ze wszystkimi moimi opcjami wdrażania.
CodeBunny
3
@CodeBunny To nie jest możliwe z samym Launch4j, ale ktoś znalazł inne fajne rozwiązanie: mark.koli.ch/ ...
Zero3