使用Launch4J将JRE捆绑到exe中

时间:2015-04-23 12:38:44

标签: 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文件复制到别处并运行它时,我收到错误消息This application was configured to use a bundled Java Runtime Environment but the runtime is missing or corrupted

我搜索了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?

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

使用launch4j,不可能将JRE放在exe中。 launch4j的'bundle'选项只是意味着你将你的exe与JRE一起分发,以及它旁边。您可以通过在config xml文件中添加以下选项来完成此操作。

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

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

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