使用Launch4J将JRE捆绑到exe中

我正在尝试使用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并发现了以下问题,但无法让我的应用程序使用那里给出的建议。

如何将JRE捆绑到Java应用程序的EXE中? Launch4j说“运行时丢失或损坏。”

如何将JRE与Launch4j捆绑在一起?

知道这里捆绑的jre会出现什么问题吗?

我怎样才能成为一个独立的exe?

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

任何帮助将不胜感激。

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

  .....  

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

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