我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)
在Launch4j中,我设置了Bundled JRE Pathas 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会出现什么问题吗?
我怎样才能创建一个独立的exe?
我不想为我的应用程序制作安装程序,只是打算运行它.
任何帮助将不胜感激.
使用 launch4j 不可能将 JRE 放在 exe 中。launch4j 的“捆绑”选项仅意味着您将 exe 与 JRE 一起分发,因此与它一起分发。您可以通过将以下选项添加到您的配置 xml 文件来完成此操作。
<jre>
<path>.....</path>
</jre>
Run Code Online (Sandbox Code Playgroud)
指定 JRE 相对于可执行文件的路径很重要,否则如果将 exe 移动到另一个位置(或另一台计算机),它将无法工作。您收到的错误消息是因为您没有将 JRE 与 exe 一起移动或复制,因此可执行文件无法再找到 JRE。
或者,如果您不使用捆绑选项,launch4j 将尝试使用系统 JRE,如果找不到一个用户重定向到 Oracle JRE 下载页面。如果这不是您想要的,并且您真的想要一个单独的 exe 进行分发,那么您唯一的其他选择是使用 NSIS 或 Inno Setup 之类的安装程序。