launch4j exe找不到jre

时间:2014-06-19 21:57:41

标签: java linux windows launch4j

launch4j的问题

程序包含一个超级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:\测试\ jre7 \ BIN \的java.exe 我的罐子是 K:\测试\ pllsolver-0.2alpha.jar

此外,我不知道这是否仍然是一个问题,但可执行文件和Data /需要在同一目录中。我打算稍后进行更好的路径,但我对Windows ENV变量没有清楚的了解。

3 个答案:

答案 0 :(得分:1)

有点晚但也许它仍然可以帮助你...

使用launch4j和JRE可以确定的一件事就是将JRE捆绑到应用程序的文件夹中。

这样做:

  • 创建路径&#39; jre&#39;在您的&#39; * .exe&#39;
  • 的文件夹中
  • 在此文件夹中复制JRE(此jre必须符合您设置的&#39; min&#39; /&#39; max&#39;条件)
  • 设置&#39;&lt; path&gt; / jre&lt; / path&gt;&#39;在&lt; jre&gt;内您的&#39; .xml&#39;
  • 的配置

......这应该有用

答案 1 :(得分:0)

我使用launch4j 3.12(2020)和OpenJDK来解决JRE设置问题,并收到消息“找不到Java运行时”。 我的目标是使用OpenJDK(https://adoptopenjdk.net/) 成功的两种方法:

  1. 安装OpenJDK,并激活JavaSoft(Oracle)注册表项,然后选择“仅使用公共JRE” launch4j-option。
  2. 安装OpenJDK,并设置JAVA_HOME选项,并将JRE选项卡中的“捆绑的jre路径”设置为%JAVA_HOME%(xml内容:%JAVA_HOME%) 这样,您就可以对不同的应用程序使用不同的JRE,并为每个不同的应用程序设置JAVA_HOME变量。

答案 2 :(得分:0)

似乎launch4j 正在寻找相对于其“outfile”位置的JRE 路径。

解决方案:

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

我的launch4j版本:3.14