我的电脑上有 Launch4J,它是一个很棒的程序。我感兴趣的其中一项功能是能够将 JRE 捆绑到通用 .EXE 文件中。但是,我找不到任何描述如何执行此操作的文档。
如何将 JRE 与 EXE 捆绑在一起?另外,我在哪里可以获得一个紧凑的便携式 JRE 来运行?Oracle 上的下载链接用于安装程序包。
我的电脑上有 Launch4J,它是一个很棒的程序。我感兴趣的其中一项功能是能够将 JRE 捆绑到通用 .EXE 文件中。但是,我找不到任何描述如何执行此操作的文档。
如何将 JRE 与 EXE 捆绑在一起?另外,我在哪里可以获得一个紧凑的便携式 JRE 来运行?Oracle 上的下载链接用于安装程序包。
经过一些尝试,我终于找到了一种解决方法,将 jre 捆绑到我的应用程序中:
我将我的应用程序打包为一个 zip 文件,其中包含以下文件夹:
containerFolder
|- jre
|-bin (in bin there is java.exe)
|-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)
在 launch4j 的 xml 文件中,我像这样配置 jre:
<jre>
<path>../jre</path>
<opt>-DgvSIG.confDir=../cfg</opt>
</jre>
这里的诀窍是路径不是 java.exe 文件。jre 的路径是相对于 .exe 的位置,它应该指向 java.exe 文件之前的一个文件夹
我正在使用的 jre 文件夹只是从安装在 Windows 系统上的 jre 文件夹的复制和粘贴。
我做了以下事情,它使用 Ver Launch4j 3.11 对我有用:
在设置了所有必需选项的 Launch4j 中,然后将 Bundled JRE 路径设置为“jre”
我刚刚做了这个。上面清楚地描述了捆绑jre的方法。
在这里,我只是分享一个我一直在挣扎的经历。如果要在launch4j创建包装exe后创建安装程序exe,请注意launch4j和jre的文件路径。这是我用来解决问题的路径:
启动4j、bin/jre、资源/bin/jre。
launch4j、bin 和资源处于同一级别。
jre 通常可以在您的 SDK 文件夹中找到。是的,在线链接是安装程序,但是一旦安装,JRE 现在就位于您的本地磁盘上。我的位于
${jdk folder}\jre
如果您真的需要,可以手动删除 JRE 中不需要的部分(我不确定网上有什么可用的)。
可以在https://github.com/vZome/vzome/blob/master/desktop/platform/windows/README.md中找到使用 Launch4J 将 Java 应用程序与特定 JRE 捆绑在一起的工作示例。此特定发行版配置为要求 vZome使用捆绑的 JRE,而不是在目标平台上找到的任何 JRE。
希望这可以帮助。