Как связать JRE с Launch4j?
У меня есть Launch4J на моем компьютере, и это отличная программа. Одна из его особенностей, в которой я заинтересован, - это возможность объединить JRE в общий .EXE файл. Однако я не могу найти документацию, описывающую, как это сделать.
Как связать JRE с EXE? Плюс, где я могу получить компактный переносной JRE? Ссылки на скачивание для Oracle предназначены для пакетов установщика.
Ответы
Ответ 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-приложение будет запущено.
- Скопируйте папку
lib
и bin
из папки JRE в папку dist вашего проекта
![jar to exe conversion]()
- Откройте launch4j и введите следующие настройки.
![enter image description here]()
Хитрость в том, что вам нужно указать полный путь к включающему javaw.exe.
Наслаждаться!!!!
Ответ 4
Я сделал следующее, и это сработало для меня, используя версию Launch4j 3.11:
- Создана новая папка для моего приложения (называется, например, MyApp).
- Скопировал файл jar из папки dist проекта java в MyApp вместе с папкой lib.
- В папке моего приложения MyApp создана папка с именем jre, так что теперь папка MyApp содержит:
- MyApp.jar
- lib <- это библиотеки, необходимые для моего Java-приложения.
- JRE
- Скопировал папки bin и lib из папки java jre (C:\Program Files (x86)\Java\jre7) в MyApp\jre
-
В Launch4j, установив все необходимые параметры, затем установите для Bundled JRE путь к "jre"
![Launch4j JRE options]()
- Убедитесь, что в параметрах поиска выбрано "Использовать только частные среды выполнения JDK".
Ответ 5
Я только что сделал это. Выше четко опишите способ комплектации JRE.
Здесь я просто делюсь опытом, с которым я боролся. Если вы хотите создать exe-программу установки после созданной exe-оболочки с помощью launch4j, обратите внимание на путь к файлу для launch4j и jre. Это мой путь, который я использовал для решения своих проблем:
launch4j, bin/jre, ресурсы /bin/jre.
launch4j, bin и ресурсы находятся на одном уровне.
Ответ 6
Обычно файл jre можно найти в папке SDK. Да, ссылки в Интернете - инсталляторы, но после установки JRE теперь находится на вашем локальном диске. Шахта находится в
${jdk folder}\jre
Части, которые вам не нужны из JRE, возможно, можно удалить вручную, если вы действительно захотите (я не уверен, что доступно в Интернете).