有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

我明白,如果我在应用程序中提供预安装的JRE,它就会发生。我也在launch4j中看到了标签JRE,但我不知道我将给出哪条路径This链接我也看到了,但是在明确定义了整个过程的地方,没有给出任何过程或有用的链接

请给出明确的答复。如果你的答案是基于launch4j,我会更喜欢


共 (4) 个答案

  1. # 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的开发者之一,因此我有偏见

  2. # 2 楼答案

    我已经创建了自己的launch4j版本,允许自动下载和安装所需的JRE-无人值守-(它显示下载进度、安装进度,并且没有将JRE安装程序下载到安装程序工作目录以外的其他目录的选项-如果有人感兴趣,我可以添加此功能)。只需进入launch4j的“JRE”选项卡即可设置选项。此外,这仅适用于GUI安装,暂时不适用于控制台。在这里你可以得到:https://github.com/maztan/launch4j_auto_jre_download

  3. # 3 楼答案

    您如何分发您的应用程序?你有安装程序吗

    如果您有安装程序,您可以将任何jre与之捆绑,并配置launch4j以使用它

    我是如何重新创建您的用例的:

    1. 创建一个目录,例如C:\temp从C:\Program Files\Java\jdk1复制我的jdk。6.0_23至C:\temp\myownjdk1。6.0_23配置
    2. 启动4j以使用my JDK:在JRE选项卡中,输入“myownjdk1.6.0_23”作为
    3. 捆绑的JRE路径和配置为“仅使用专用JDK运行时” -虽然我不确定这是否真的有必要

    我使用了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>
    
  4. # 4 楼答案

    更好的策略是启动该应用程序。使用Java Web Start。使用deployJava.js确保有合适的Java最低版本可用。用户可能已经安装了合适的JRE(因此无需下载),并且在选择卸载应用程序后,其他Java应用程序和小程序也会安装JRE

    这不符合您所述的某些要求,但总体而言,这是一个更好的选择