如何将 JRE 捆绑到 JAR 中,以便它可以在没有 Java 的系统上运行?
我想将JRE捆绑在我的可执行JAR中,以便exe可以在任何系统上运行。
我已经尝试过Launch4j,但这种方法要求我同时发布JRE和exe。根据我的要求,我不应该使用安装程序来交付,也不应该在客户端计算机上提取/安装JRE。
如何将 JRE 放入 JAR 中并利用它?
我想将JRE捆绑在我的可执行JAR中,以便exe可以在任何系统上运行。
我已经尝试过Launch4j,但这种方法要求我同时发布JRE和exe。根据我的要求,我不应该使用安装程序来交付,也不应该在客户端计算机上提取/安装JRE。
如何将 JRE 放入 JAR 中并利用它?
不能将 JRE 放在 JAR 文件中。(好吧,你可以...但这无济于事。
您需要做的是构建和分发安装程序。创建安装程序的推荐方法是使用商业或开源安装程序生成器。(谷歌会帮你找到一个。
也可以在 ZIP 文件中嵌入 JRE,如下所述:
ZIP 文件包含 JRE 和应用程序 JAR,以及它需要的其他文件。用户必须解压缩 ZIP 文件才能安装应用程序。
..但它在客户端系统中复制了近100 MB的总JRE。是否有可能使JRE重量更轻?
没有。分发 JRE 最(合法)轻量级的方法是分发 Oracle Java 安装程序。请注意,Java 二进制许可证禁止分发精简的 JRE。如果你想走这条路,请先和律师谈谈!
使用嵌入式 JRE 分发 Java 应用程序可以说是一件坏事:
从Java 9开始,有一个比在安装程序中包含标准JRE更好的解决方案。使用新的实用程序为您的应用程序创建定制的JRE;有关教程,请参阅 https://www.baeldung.com/jlink,以及 Oracle Jlink 手册条目。jlink
请注意,这解决了我们上面提到的嵌入式 JRE 的问题。但是,以新的 jlink'd 可分发组件的形式向用户提供 JVM 安全补丁显然是您的责任1。jlink
1 - 实际上,应用程序供应商/供应商一直有责任为客户提供建议和协助升级嵌入式JRE。不幸的是,许多供应商忽视了这一点,导致客户运行具有已知Java漏洞的应用程序,而Sun / Oracle则受到指责......不公 平地。。。供应商的失败。
它确实为我提供了launch4j
首先创建一个应用程序文件夹,然后打开launch4j并输入jar文件,输出文件(应该在应用程序文件夹中)和图标(请将其放在应用程序文件夹中)。然后转到jre部分并在捆绑的jre路径中键入jre-{version your using},然后放置选项仅使用私有jdk运行时,然后将最小版本放到您的java版本中,然后进行jdk安装并复制bin和lib文件夹,然后创建一个jre-{version your using}文件夹,然后粘贴它们。然后将其编译为exe!