【问题标题】:running java installer with bundled jre使用捆绑的 jre 运行 java 安装程序
【发布时间】:2019-01-11 14:32:59
【问题描述】:

我们目前为我们的应用程序提供了一个 java(jar) 安装程序。考虑到对 jdk11 的更改,我们希望我们的用户拥有同样简单的安装体验。所以,我们正在寻找的是,即使没有安装 java,也只有一个可以运行的文件,它应该只是启动我们旧的 java 安装程序。

可能,这意味着我们将 jre 打包并有一个运行 jar 的脚本,但问题是如何在本机运行批处理文件?我们需要它在 Windows 和 Mac 上工作。我们正在研究的大多数工具都需要 java 来运行包装好的 jar。

【问题讨论】:

标签: java


【解决方案1】:

您必须构建 2 个不同的脚本/安装程序,每个平台一个。即使查看像 Chrome 这样非常流行的软件,平台选择仍然存在(即使您通常会根据浏览器提供的信息被引导到正确的选择)

根据您可以在此任务中投入多少时间,最快(也是最肮脏)的解决方案是为每个平台创建一个存档,其中包含用于 Windows 的脚本 .bat 和用于 OS X 的 .sh 以及 @ 987654326@(每个平台也不同),要求用户取消归档并运行脚本,该脚本将使用打包的 jre 运行您的 jar。否则,您需要为 Windows 创建一个 MSI/exe,为 MacO 创建一个 dmg(或其他安装程序类型)。

我之前使用捆绑的 jre 完成了 dmg,如果需要,可以尝试查找详细信息(我不再可以访问代码,但可能可以找到详细信息)。这是一个免费的解决方案,但它确实需要一台 OS X 计算机来创建dmg。

我之前使用过并且效果很好的一个选项是install4j,但价格不小。

LE:Self contained packaging - 虽然我以前没有使用过它,但它似乎是解决您问题的最佳当前选择。

还有一个开源选项 - packr。

【讨论】:

    【解决方案2】:

    自包含包装并没有真正的帮助,packr 和launch4j 一样。因为所有这些只是生成一个包含大量文件和目录的应用程序映像。

    问题在此之前,作为安装程序,您需要 1 个大 exe(或 Mac 的 dmg)来完成所有操作,单击 我们已经处于像 SCP 或 Packr 这样的阶段。因为那很容易或当前的 installer.exe 和 jre\ sub dir 以及除此之外的批处理/sh 文件。问题是如何从那个目录结构获得一个运行的单个 exe。

    所以我们应该拥有可以将其压缩到自解压存档中的东西,当点击它时,它应该自动解压到操作系统的临时目录,然后直接在其上运行命令(如批处理文件或直接在提取的目录中:.\jre\bin\javaw.exe -jar installler.jar) 但似乎没有人做过这样的事情,我们最接近的是 eclipse with Oomph:

    [1]https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/tree/plugins/org.eclipse.oomph.extractor/src/extractor.c

    [2]https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/tree/plugins/org.eclipse.oomph.extractor.lib/src/org/eclipse/oomph/extractor/lib/BINExtractor.java

    问题是通过java进行提取并且仍然想要一个vm。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多