我正在尝试使用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 to bundle a JRE with Launch4j?
知道这里捆绑的jre会出现什么问题吗?
我如何制作一个独立的exe?
我不想为我的应用程序制作安装程序,只是打算运行它。
非常感谢任何帮助。
答案 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等安装程序。