launch4j exe не может найти jre

Проблемы с launch4j

Программа состоит из одной uber jar через плагин maven-shade и отлично работает с данными / запускается на любой машине jre7, Windows или Linux.

Однако мне не удалось заставить запустить launch4j.

launch4j config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<launch4jConfig>
  <dontWrapJar>false</dontWrapJar>
  <headerType>gui</headerType>
  <jar>pllsolver-0.2alpha.jar</jar>
  <outfile>pllsolver-0.2alpha.exe</outfile>
  <errTitle>NO JRE FOUND</errTitle>
  <cmdLine></cmdLine>
  <chdir></chdir>
  <priority>normal</priority>
  <downloadUrl>http://java.com/download</downloadUrl>
  <supportUrl></supportUrl>
  <stayAlive>false</stayAlive>
  <manifest></manifest>
  <icon>sicr.ico</icon>
  <jre>
    <path>jre7</path>
    <bundledJre64Bit>false</bundledJre64Bit>
    <minVersion></minVersion>
    <maxVersion></maxVersion>
    <jdkPreference>preferJre</jdkPreference>
    <runtimeBits>64/32</runtimeBits>
  </jre>
  <splash>
    <file>sicr.bmp</file>
    <waitForWindow>false</waitForWindow>
    <timeout>5</timeout>
    <timeoutErr>true</timeoutErr>
  </splash>
  <messages>
  </messages>
</launch4jConfig>

Затем, чтобы построить в Windows, я пробую следующее:

PS K:\test> set PATH="K:\test\jre7\bin\"
PS K:\test> ..\launch4j\launch4jc.exe .\config.xml
launch4j: Compiling resources
launch4j: Linking
launch4j: Wrapping
launch4j: Successfully created K:\test\.\pllsolver-0.2alpha.exe
PS K:\test> .\pllsolver-0.2alpha.exe
PS K:\test>

Именно в этот момент у меня появляется приятное окошко о том, как ему не удалось найти JRE.

Java находится в K: \ test \ jre7 \ bin \ java.exe Моя банка - это K: \ test \ pllsolver-0.2alpha.jar

Кроме того, я не знаю, будет ли это проблемой, но исполняемый файл и Data / должны находиться в одном каталоге. Я планирую улучшить пути позже, но у меня нет четкого представления о переменных Windows ENV.


person Justin Reeves    schedule 19.06.2014    source источник
comment
Хорошо, я добавил% JAVA_HOME%, установленный в каталог jre, и добавил% JAVA_HOME% \ bin \ в% PATH% Затем я попробовал ‹jre› ‹path›% JAVA_HOME% ‹/path› ... ‹/jre› с такие же плохие результаты. Я потерян.   -  person Justin Reeves    schedule 20.06.2014


Ответы (3)


немного поздно, но, может быть, это все еще может вам помочь ...

Одна вещь, которая наверняка работает с launch4j и JRE, - это связать JRE в папке вашего приложения.

To do so:

  • создайте путь jre в папке с вашим * .exe
  • скопируйте JRE в эту папку (этот jre должен соответствовать установленным вами условиям 'min' / 'max')
  • установите ‹path> / jre ‹/path> внутри конфигурации ‹jre> вашего .xml

... это должно сработать

person matthiasboesinger    schedule 09.03.2015
comment
Созданный таким образом exe будет работать независимо, верно? т.е. когда не в той же папке, что и jre - person Pranav; 24.04.2015
comment
... правильно! вам просто нужно указать путь к jre в файле конфигурации launch4J - person matthiasboesinger; 24.04.2015

Я боролся с настройкой JRE, используя launch4j 3.12 (2020) и OpenJDK, а также получил сообщение, что среда выполнения java не найдена. Моей целью было использовать OpenJDK (https://adoptopenjdk.net/) Два пути были успешными:

  1. Установите OpenJDK с активированными ключами реестра JavaSoft (Oracle) и выберите единственный вариант использования общедоступных JRE-файлов launch4j.
  2. Установите OpenJDK с установленной опцией JAVA_HOME и установите для связанного пути jre на вкладке JRE значение% JAVA_HOME% (xml content:% JAVA_HOME%). При этом вы можете использовать разные JRE для разных приложений, устанавливая переменную JAVA_HOME для каждого из по-разному.
person Pulsar07    schedule 22.10.2020

Похоже, что launch4j ищет путь JRE относительно его местоположения "выходного файла".

Решения:

  • Вы можете использовать абсолютный путь, например. 'C: \ loc \ of \ jre'
  • Поместите JRE в свой каталог 'outfile' и установите путь JRE относительно, например, 'jre'
  • Рассматривайте путь JRE относительно каталога 'outfile', например. '.... \ somefolder \ jre'

Моя версия launch4j: 3.14

person Christian Benner    schedule 23.07.2021