Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Launch4J将JRE捆绑到exe中_Java_Launch4j - Fatal编程技术网

Java 使用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中,我将捆绑的

我正试图使用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中,我将
捆绑的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中!