java - 使用 Launch4J 将 JRE 捆绑到 exe 中

标签 java launch4j

我正在尝试使用 launch4j 将 JRE 捆绑到我的 exe 中。

我的文件夹结构如下-

|- test
    |- jre(copied from my windows installation of jre)
        |-bin
        |-lib
    |- jretest.jar (the jar file I am using to create my exe)
    |- jretest.exe (the output exe file)

在 Launch4j 中,我将 Bundled JRE Path 设置为 jre

到目前为止,该 exe 运行良好。

但是,当我将我的 exe 文件复制到别处并运行它时,我收到错误消息此应用程序已配置为使用捆绑的 Java 运行时环境,但运行时丢失或损坏

我在 SO 上进行了搜索,发现了以下问题,但无法让我的应用程序按照那里给出的建议工作。

How do I bundle a JRE into an EXE for a Java Application? Launch4j says "runtime is missing or corrupted."

How to bundle a JRE with Launch4j?

知道其中捆绑了 jre 会出现什么问题吗?

如何制作一个独立的exe?

我不想为我的应用程序制作安装程序,只是想运行它。

如有任何帮助,我们将不胜感激。

最佳答案

使用 launch4j 无法将 JRE 放入 exe 中。 launch4j 的“捆绑”选项只是意味着您将 exe 与 JRE 一起分发,因此与它一起分发。您可以通过将以下选项添加到您的配置 xml 文件来执行此操作。

<jre>
    <path>.....</path> 
</jre>

指定 JRE 相对于可执行文件的路径很重要,否则如果将 exe 移动到另一个位置(或另一台计算机),它将无法工作。您收到的错误消息是因为您没有将 JRE 与您的 exe 一起移动或复制,因此可执行文件无法再找到 JRE。

或者,如果您不使用捆绑选项,launch4j 将尝试使用系统 JRE,如果找不到,则将用户重定向到 Oracle JRE 下载页面。如果这不是您想要的,并且您确实想要一个用于分发的 exe,那么您唯一的其他选择是使用像 NSIS 或 Inno Setup 这样的安装程序。

关于java - 使用 Launch4J 将 JRE 捆绑到 exe 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29823733/

相关文章:

java - 我可以在接口(interface)方法上使用@PostConstruct 吗?

java - 链接列表,未正确添加值

java - Spring 可缓存注释在部署完成之前不起作用

JAVA 四舍五入到最接近的数字

java - 没有 JMC-Java Mission Controller-FlightRecorder 的 OpenJDK JDK11

java - Launch4j异常错误

java - Windows XP 上的 Lauch4J/NSIS 安装程序的代码签名?

java - 从 java 代码运行 Launch4J?

java - Launch4j JRE 安装或捆绑

java - 使用maven将java文件打包成exe for windows