windows launch4j exe找不到jre

piah890a  于 2022-12-14  发布在  Windows
关注(0)|答案(4)|浏览(382)

launch 4j的问题
程序包含在一个通过maven阴影插件和数据/运行在任何jre 7机器,windows或linux罚款的uber jar上
然而,我一直无法让launch 4j工作。
launch 4j配置文件:

<?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:\测试\jre 7\bin\java.exe中我的jar文件是K:\测试\pllsolver-0.2alpha. jar
另外,我不知道这是否会成为一个问题,但可执行文件和Data/需要在同一个目录中。我计划稍后做更好的路径,但我对Windows ENV变量没有清楚的了解。

t0ybt7op

t0ybt7op1#

我在使用launch4j 3.12(2020)和OpenJDK的JRE设置中挣扎,也得到了“没有找到java运行时”的消息。我的目标是使用OpenJDK(https://adoptopenjdk.net/)两种方法都成功了:
1.安装OpenJDK,并激活JavaSoft(Oracle)注册表项,然后选择“only use public JRE”launch4j选项。
1.安装OpenJDK,并设置JAVA_HOME选项,然后将JRE选项卡中的“捆绑的jre路径”设置为%JAVA_HOME%(xml内容:%JAVA_HOME%)通过此选项,您可以为不同的应用程序使用不同的JRE,并为每个应用程序设置不同的JAVA_HOME变量。

6yjfywim

6yjfywim2#

有点晚了但也许还能帮到你。
有一件事是肯定的工作与launch 4j和JRE是捆绑JRE在您的应用程序的文件夹。
要执行此操作,请执行以下操作:

  • 在包含“*.exe”的文件夹中创建路径“jre”
  • 在此文件夹中复制JRE(此JRE必须符合您设置的“最小”/“最大”条件)
  • 在.xml的配置中设置/jre

......这应该可以

de90aj5v

de90aj5v3#

看来launch4j正在查找相对于其“outfile”位置的JRE路径。
解决方案:

  • 您可以使用绝对路径,例如'C:\loc\of\jre'
  • 将JRE放在“outfile”目录中,并设置相对的JRE路径,例如“jre”
  • 将JRE路径视为相对于“outfile”目录,例如...“\somefolder\jre”

我的launch4j版本:3.14

tkclm6bt

tkclm6bt4#

这帮我修好了,%PATH%不见了

<jre>
    <path>%JAVA_HOME%;%PATH%</path>
    <requiresJdk>false</requiresJdk>
    <requires64Bit>false</requires64Bit>
    <minVersion></minVersion>
    <maxVersion></maxVersion>
  </jre>

相关问题