当前位置: 首页 > 知识库问答 >
问题:

使用Launch4J将JRE绑定到exe中

贲文景
2023-03-14
|- 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)

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

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

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

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

共有1个答案

羊舌富
2023-03-14

对于launch4j,不可能将JRE放在EXE中。launch4j的'bundle'选项仅仅意味着您将exe与JRE一起分发,因此与它一起分发。您可以通过将以下选项添加到配置xml文件中来完成此操作。

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

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

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

 类似资料:
  • Java在k:\test\jre7\bin\Java.exe中,我的jar是k:\test\pllsolver-0.2alpha.jar 此外,我还不知道这是否会成为一个问题,但可执行文件和数据/需要在同一个目录中。我计划稍后做更好的pathing,但我对Windows ENV变量没有一个清晰的理解。

  • 但程序没有启动。它显示了一个会立即消失的小对话框(看起来是空白的,但它消失得太快了,以至于我没有真正注意到它)。

  • 我是Java编程的新手,但我对所有的工作方式都很熟悉。我希望能够将jar文件和jre都放入windows可执行文件(exe),这样当我分发它时,客户机就不需要安装jre。我应该用什么程序? 我有launch4j,它似乎完全符合我的要求,但当我尝试运行应用程序时,我得到的是“这个应用程序被配置为使用捆绑的Java运行时环境,但运行时丢失或损坏了。” 我希望我的应用程序只是一个运行的exe,而不是一个

  • 我不熟悉Java编程,但通常熟悉一切的工作原理。我希望能够将jar文件和jre都放入windows可执行文件(exe)中,这样当我分发它时,客户端就不需要安装jre。我应该使用什么程序? 我已经启动了4j,它似乎正是我想要的,但当我尝试运行应用程序时,我得到“此应用程序被配置为使用捆绑Java运行时环境,但运行时丢失或损坏。” 我希望我的应用程序只是一个可运行的exe,而不是一个安装程序。至少,有

  • 我用的是edu。seis理学学士。启动4J插件,使用gradle构建脚本构建可分发的应用程序。我正试图用一个捆绑的JRE来制作这些。 这是格雷德尔的剧本 令人沮丧的是,这创建了一个运行的应用程序(由gradle任务createExe创建的exe),但显然没有捆绑在/旁边的JRE,大概是因为它运行是因为它返回到使用系统jre,这使得测试变得困难。如果我把一个故意损坏的jre放在 /jre/它似乎仍然