Як поєднати JRE з Launch4j?


80

У мене на комп’ютері Launch4J, і це чудова програма. Однією з його особливостей, яка мене цікавить, є можливість об'єднання JRE у загальний файл .EXE. Однак я не можу знайти жодної документації, яка б описувала, як це робити.

Як поєднати JRE з EXE? Плюс, де я можу взяти компактний портативний JRE для роботи? Посилання для завантаження в Oracle стосуються програм встановлення.


5
Launch4j дозволяє вам об'єднати JRE з вашим колишнім, так що поряд з ним. Ви не можете використовувати його для вставки JRE у ваш exe.
Телпер

Що це взагалі означає ...
DKIT

Відповіді:


82

Після деяких спроб я нарешті отримую обхідний шлях для об’єднання jre у моєму додатку:

Я пакую свою програму як zip-файл із такими папками всередині:

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)

У xml-файлі launch4j я налаштовую jre так:

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

Фокус у тому, що шлях не до файлу java.exe. Шлях до jre відносно позиції .exe, і він повинен вказувати на одну папку перед файлом java.exe

Я використовую папку jre - це просто копіювання та вставлення з папки jre, встановленої в системі Windows.


4
Це мені дуже допомогло! Документи з цим не надто зрозумілі ... Працює як шарм :-)
Konrad 'ktoso' Malawski

Привіт, що це за шлях <path> ../jre </path>, чи це вже існуючий шлях, який знаходиться в папці C: //..java, або новий інсталятор Java JRE, який завантажується.
RajaReddy PolamReddy

@RajaReddyPolamReddy - це відносний шлях від вашого .exe-файлу до папки, де знаходиться jre у вашій заявці
Francisco Puga

9
Задавалося запитання, як об’єднати JRE в EXE з launch4j. Ця відповідь показує, як сказати launch4j використовувати певний JRE, який ви поставили в комплекті з вашим EXE, але не всередині нього. Здається, це найкраще, що можна зробити за допомогою launch4j. (Інша відповідь нижче показує один із способів створити інсталятор, який потім встановить як EXE, так і JRE, але JRE не буде в EXE.)
Передано

1
А як щодо JDK11, який не постачається з JRE?
Панагіс

12

Я зробив наступне, і мені це вдалося, використовуючи версію Launch4j 3.11:

  1. Створив нову папку для моєї програми (називається, наприклад, MyApp).
  2. Скопійовано файл jar з папки java проекту dist до MyApp разом із папкою lib.
  3. Створив папку під назвою jre у моїй папці додатків MyApp, тому тепер папка MyApp містить:
    • MyApp.jar
    • lib <- тут є бібліотеки, необхідні моєму додатку java.
    • jre
  4. Скопійовано папки bin і lib із папки java jre (C: \ Program Files (x86) \ Java \ jre7) у MyApp \ jre
  5. У Launch4j встановивши всі необхідні параметри, а потім встановіть в комплекті шлях JRE на "jre"

    Параметри Launch4j JRE

  6. Переконайтеся, що у параметрах пошуку вибрано "Використовувати лише приватні середовища виконання JDK".

6

Така ж проблема, як і ви, пару. Без турбот. Це все вирішується з максимальною глибиною для вирішення майбутнього рішення. Рішення про те, як ви можете об’єднати свій JRE для вашої банки без потреби користувача встановлювати java чи ні. Запуститься ваша програма Java.

  1. Скопіюйте libта binпапку з папки JRE у папку проекту dist

JAR в EXE перетворення - -

  1. відкрийте launch4j і введіть наступне налаштування. введіть тут опис зображення

Фокус у тому, що вам потрібно вказати повний шлях до файлу, що включає javaw.exe.

Насолоджуйтесь !!!!


1
Помістіть будь-який файл у папку dist, роблячи цю помилку під час очищення та побудови: Неможливо видалити файл ...
ParisaN,

0

Я щойно зробив це. Вище чітко опишіть метод зв’язування jre.

Тут я просто ділюсь досвідом, з яким я боровся. Якщо ви хочете створити інсталятор exe після створення обгортки exe за допомогою launch4j, зверніть увагу на шлях до файлів для launch4j та jre. Це мій шлях, який я використовував для вирішення своїх проблем:

launch4j, bin / jre, resources / bin / jre.

launch4j, bin та ресурси на одному рівні.


0

Робочий приклад використання Launch4J для об’єднання Java-програм із певним JRE можна знайти за адресою https://github.com/vZome/vzome/blob/master/desktop/platform/windows/README.md . Цей конкретний дистрибутив налаштований так, щоб вимагати vZome використовувати в комплекті JRE, а не будь-який JRE, знайдений на цільовій платформі.

Сподіваюся, це допомагає.


-2

Зазвичай jre можна знайти у вашій папці SDK. Так, посилання в Інтернеті є установниками, але після встановлення JRE тепер знаходиться на вашому локальному диску. Шахта знаходиться в

${jdk folder}\jre

Частини, які вам не потрібні з JRE, можуть бути видалені вручну, якщо ви дійсно хочете (я не впевнений, що доступно в Інтернеті).


Як згрупувати його в EXE? Я намагаюсь упакувати все в банку, щоб мені не довелося турбуватися, якщо у користувача встановлена ​​Java. Я усвідомлюю, що просто завантажити java - це, мабуть, найкраща ідея; однак я хотів би поекспериментувати з усіма своїми варіантами розгортання.
CodeBunny

3
@CodeBunny Це неможливо лише з Launch4j, але хтось знайшов інше гарне рішення: mark.koli.ch/…
Zero3
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.