Java 使用Launch4J将JRE捆绑到exe中
我正试图使用launch4j将JRE捆绑到我的exe中 我的文件夹结构如下-Java 使用Launch4J将JRE捆绑到exe中,java,launch4j,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中,我将捆绑的
|- 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中,我将捆绑的JRE路径设置为JRE
到目前为止,exe工作正常
但是,当我将exe文件复制到其他位置并运行它时,会收到错误消息此应用程序配置为使用捆绑的Java运行时环境,但运行时丢失或损坏
我搜索了SO,发现了以下问题,但无法让我的申请与那里给出的建议一起工作
你知道捆绑了jre会出现什么问题吗
如何制作独立的exe
我不想让我的应用程序安装,但只是打算运行它
任何帮助都将不胜感激。使用launch4j,无法将JRE放入exe中。launch4j的“bundle”选项仅仅意味着您将exe与JRE一起分发,因此与JRE一起分发。您可以通过将以下选项添加到配置xml文件来实现这一点
<jre>
<path>.....</path>
</jre>
.....
指定相对于可执行文件的JRE路径非常重要,否则,如果将可执行文件移动到另一个位置(或另一台计算机),JRE将无法工作。您收到的错误消息是,您没有将JRE与exe一起移动或复制,因此可执行文件无法再找到JRE
或者,如果不使用bundle选项,launch4j将尝试使用系统JRE,如果找不到,则将用户重定向到Oracle JRE下载页面。如果这不是您想要的,并且您确实想要一个exe来分发,那么您唯一的其他选择就是使用NSIS或Inno Setup之类的安装程序。您是否尝试过使用cmd在这个JRE上运行Jar?它在lauch4j上非常直接,只需键入JRE文件夹的名称,就可以看到它与jar/exe位于同一个文件夹中。也许你的JRE已经损坏了。最初的问题解决了(我假设我的JRE出了问题。我删除并复制了它,然后它开始工作)。当exe与原始jar文件位于同一文件夹中时,它可以正常工作。但当我将exe复制到其他地方时,它停止工作(显示jre丢失或损坏的错误)。如何使exe完全独立?独立是什么意思?如果你想在任何地方都能运行.exe,你可以指定一个绝对路径而不是相对路径,比如C:\Java\JRE。但这在另一台计算机上是行不通的。我怎样才能将jre放入exe中,使它在没有安装jre的任何计算机上工作?我真的不认为你能做到这一点,Launch4j或其他任何版本都不行。此外,你的exe文件至少有100mb,这根本不是一件好事。您最好的选择是使用Launch4j捆绑JRE和Inno Setup之类的软件来创建安装程序。“Launch4j的“捆绑”选项只是意味着您将exe与JRE一起分发,因此与JRE一起分发。”所以基本上就像Maven的“提供”范围一样。。。这一点应该在文档中明确,因为有很多人(包括我)徒劳地试图将JRE打包到exe中!