Java 关于捆绑JRE的JSmooth问题

Java 关于捆绑JRE的JSmooth问题,java,windows,exe,software-distribution,launcher,Java,Windows,Exe,Software Distribution,Launcher,我正在尝试将JRE与我的jar文件捆绑在一起,这样我就可以在任何windows计算机上运行我的应用程序,不管它是否有Java。jsmooth手册上说: 要使选项正常工作,您必须将JRE放在EXE附近的目录中(通常放在名为“JRE”或其他的子目录中)。生成exe后,它将首先尝试在提到的位置定位JRE。如果在那里找不到它,那么它将在正常的jre查找模式下回退(在Windows注册表或常用环境变量中搜索jre或jdk)。当使用捆绑的JRE时,不需要进行JVM版本检查,因为包装商应该为应用程序捆绑合适的

我正在尝试将JRE与我的jar文件捆绑在一起,这样我就可以在任何windows计算机上运行我的应用程序,不管它是否有Java。jsmooth手册上说:

要使选项正常工作,您必须将JRE放在EXE附近的目录中(通常放在名为“JRE”或其他的子目录中)。生成exe后,它将首先尝试在提到的位置定位JRE。如果在那里找不到它,那么它将在正常的jre查找模式下回退(在Windows注册表或常用环境变量中搜索jre或jdk)。当使用捆绑的JRE时,不需要进行JVM版本检查,因为包装商应该为应用程序捆绑合适的JVM。

这是否意味着jre子文件夹应该包含在jar中,是它自己的独立jar,还是放在exe附带的文件夹中?如果它应该位于包含exe的文件夹中,如何指定jre子文件夹的相对路径

我的目录如下:

设置/

-jre/

-myprogram.exe

我尝试在GUI屏幕中使用
。\jre
\jre
。\setup\jre
,但都不起作用

任何想法或线索都将不胜感激。非常感谢


编辑:当我尝试
jre
(和
。\jre
我想),我在尝试运行它时从windows收到以下错误消息“MyProgram.exe已停止运行”。当我查看问题详细信息时,它说APPCRASH,故障模块名为jvm.dll

,作为替代,我建议使用成熟的开源项目,NSIS。您可以编写一个安装程序,下载并安装JRE,然后创建运行程序的快捷方式

以下是一些有用的链接:

您是否尝试过Launch4J(),不久前我们从JSmooth切换到了这个版本,因为它更为先进,具有更多的功能


但是,请将jre文件夹与.exe放在同一文件夹中,然后使用jre\作为其路径。不过,您需要确保.exe的工作文件夹是安装文件夹。并确保在JRE文件夹中有完整的JRE。

只需将“JRE”文件夹放在exe旁边,并在jsmooth的GUI中写上“JRE”(不带引号)

只写“JRE”怎么样?除非另有说明,否则Windows假定相对于当前文件夹的路径。当我使用。\jre时,程序将其切换为普通jre,但仍然无法工作。不过我会再试一次