如何使用JRE分发我的应用程序jar?我使用launch4j
在exe中创建可执行jar。
我的应用程序是基于桌面的swing应用程序。我想让它像一个应用程序,如果用户没有安装JRE,他们可以使用嵌入式JRE来使用它。我给JRE提供了应用程序并使用它。卸载应用程序和JRE将像游戏一样卸载。
据我所知,如果我将预安装的JRE与我的应用程序一起提供,它就会发生。我还在launch4j
中看到了标签JRE,但我不明白我会给出哪条路径。 This链接我也看到了,但是没有给出明确定义总程序的程序或有用的链接。
请给出一些明确的答案。如果您的答案基于launch4j
,我会更喜欢。
答案 0 :(得分:5)
您如何分发您的申请?你有安装人员吗?
如果你有安装程序,你可以用它捆绑任何jre并配置launch4j来使用它。
我为重新创建用例所做的工作:
我使用的是JDK,但我相信你可以用JRE做同样的事情。 此外,我很确定你必须(或可以)使用相关路径(就像我一样)。
这是我的配置文件:
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>gui</headerType>
<jar>C:\temp\demoapp.jar</jar>
<outfile>C:\temp\thing.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir></chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<customProcName>false</customProcName>
<stayAlive>false</stayAlive>
<manifest></manifest>
<icon></icon>
<jre>
<path>myownjdk1.6.0_23</path>
<minVersion></minVersion>
<maxVersion></maxVersion>
<jdkPreference>jdkOnly</jdkPreference>
</jre>
</launch4jConfig>
答案 1 :(得分:2)
更好的策略是启动应用。使用Java Web Start。使用deployJava.js
确保可以使用合适的最低Java版本。用户可能已经安装了合适的JRE(因此无需下载),并且一旦他们选择卸载应用程序,就会将其用于其他Java应用程序和applet。
这不符合您的一些要求,但它总体上是一个更好的选择。
答案 2 :(得分:1)
您还可以查看BitRock InstallBuilder。
我们为Java提供了非常好的支持 - 既检测它是否存在,以及容易包含JRE和构建启动器二进制文件。
您可以在此处找到更多信息: http://installbuilder.bitrock.com/docs/installbuilder-userguide/ar01s17.html#_bundling_a_jre
和Java组件/ JRE文件: http://installbuilder.bitrock.com/java/
使用上面链接的文件,就像在项目中设置一些变量一样简单,安装程序就可以工作。
它不是免费的,但如果您的项目是开源的,您可以申请免费的开源许可证,您可以使用它来为您的应用程序创建安装程序。
免责声明:我是BitRock InstallBuilder的开发人员之一,所以我有偏见。
答案 3 :(得分:0)
我创建了自己的launch4j版本,允许自动下载和安装所需的JRE - 无人值守 - (它显示下载进度,没有安装进度,也没有将JRE安装程序下载到安装程序以外的其他目录的选项工作目录 - 我可以添加此功能,如果有人对它感兴趣)。只需转到launch4j的“JRE”选项卡即可设置选项。此外,这仅适用于GUI安装,现在不适用于控制台。在这里你可以得到它:https://github.com/maztan/launch4j_auto_jre_download