使用JRE分发我的应用程序jar

时间:2011-07-29 10:49:29

标签: java deployment installer launch4j

如何使用JRE分发我的应用程序jar?我使用launch4j在exe中创建可执行jar。

我的应用程序是基于桌面的swing应用程序。我想让它像一个应用程序,如果用户没有安装JRE,他们可以使用嵌入式JRE来使用它。我给JRE提供了应用程序并使用它。卸载应用程序和JRE将像游戏一样卸载。

据我所知,如果我将预安装的JRE与我的应用程序一起提供,它就会发生。我还在launch4j中看到了标签JRE,但我不明白我会给出哪条路径。 This链接我也看到了,但是没有给出明确定义总程序的程序或有用的链接。

请给出一些明确的答案。如果您的答案基于launch4j,我会更喜欢。

4 个答案:

答案 0 :(得分:5)

您如何分发您的申请?你有安装人员吗?

如果你有安装程序,你可以用它捆绑任何jre并配置launch4j来使用它。

我为重新创建用例所做的工作:

  1. 创建一个目录,例如C:\ temp将我的jdk从C:\ Program Files \ Java \ jdk1.6.0_23复制到C:\ temp \ myownjdk1.6.0_23配置
  2. launch4j使用我的JDK:在JRE选项卡中,输入“myownjdk1.6.0_23”作为
  3. 捆绑的JRE路径,我配置为“仅使用私有JDK运行时”      - 虽然我不确定这是否真的有必要。
  4. 我使用的是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