Подтвердить что ты не робот

Как связать JRE с Launch4j?

У меня есть Launch4J на моем компьютере, и это отличная программа. Одна из его особенностей, в которой я заинтересован, - это возможность объединить JRE в общий .EXE файл. Однако я не могу найти документацию, описывающую, как это сделать.

Как связать JRE с EXE? Плюс, где я могу получить компактный переносной JRE? Ссылки на скачивание для Oracle предназначены для пакетов установщика.

4b9b3361

Ответ 1

После некоторых попыток я наконец получаю обходное решение для связывания jre в моем приложении:

Я упакую свое приложение в виде zip файла со следующими папками внутри:

containerFolder
|- jre
      |-bin (in bin there is java.exe)
      |-lib
|- cfg (to save the user configuration, but it 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.

Ответ 2

Единственным способом, которым я мог бы связать JRE, было использование Launch4J и компилятора Inno Setup.

Сначала создайте папку "jre6" (например) в том же каталоге, что и ваш выходной файл (.exe).

Затем скопируйте JRE из вашей системы в папку jre6.

Затем вы открываете Launch4J и устанавливаете "Связанный путь JRE" - просто введите: jre6. Затем нажмите кнопку "Создать" (очевидно, после ввода всех других параметров), но единственным значением, которое вам нужно ввести на вкладке "JRE", является значение "Связанное значение JRE".)

Я бы ожидал, что это сработает, но если переместить .exe в новое место (так что он больше не находится вместе с вашей папкой jre6), вы получите "Это приложение было настроено на использование объединенной Java Runtime Environment но во время выполнения отсутствует или повреждена ошибка при попытке запустить приложение...

Я играю с этим весь день, и я не мог заставить Launch4J включить JRE в .exe файл. На самом деле, я считаю, что они бедны, поскольку их документация, похоже, не ссылается на эту проблему вообще.

Итак, я решил разрешить использовать компилятор Inno Setup. Это приложение используется для переноса вашего .exe в качестве файла установщика Windows. Поэтому я добавил параметр ISC script, который копирует JRE в пакет установщика. Строка, которую я добавил в script (в разделе [Files]):

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs

... немного обходного пути, но он сделал трюк.

Повторите все вышеуказанные шаги, и вы должны быть отсортированы.

ОТВЕЧАЕТ ОТ здесь..user1617737

Ответ 3

Та же проблема, что и у тебя, приятель. Не беспокойся сейчас. Все решается с максимальной глубиной, чтобы решить будущее решение. Решение, как вы можете связать свой JRE для вашего jar без необходимости, пользователь должен установить Java или нет. Ваше Java-приложение будет запущено.

  1. Скопируйте папку lib и bin из папки JRE в папку dist вашего проекта

jar to exe conversion

  1. Откройте launch4j и введите следующие настройки. enter image description here

Хитрость в том, что вам нужно указать полный путь к включающему javaw.exe.

Наслаждаться!!!!

Ответ 4

Я сделал следующее, и это сработало для меня, используя версию Launch4j 3.11:

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

    Launch4j JRE options

  6. Убедитесь, что в параметрах поиска выбрано "Использовать только частные среды выполнения JDK".

Ответ 5

Я только что сделал это. Выше четко опишите способ комплектации JRE.

Здесь я просто делюсь опытом, с которым я боролся. Если вы хотите создать exe-программу установки после созданной exe-оболочки с помощью launch4j, обратите внимание на путь к файлу для launch4j и jre. Это мой путь, который я использовал для решения своих проблем:

launch4j, bin/jre, ресурсы /bin/jre.

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

Ответ 6

Обычно файл jre можно найти в папке SDK. Да, ссылки в Интернете - инсталляторы, но после установки JRE теперь находится на вашем локальном диске. Шахта находится в

${jdk folder}\jre

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