【问题标题】:Bundling a JRE with an application?将 JRE 与应用程序捆绑在一起?
【发布时间】:2013-02-27 09:31:12
【问题描述】:

我一直在争论是否将 JRE 与我的应用程序捆绑在一起。我在下面列出了一些我认为它有用的原因,但我也犹豫是否这样做,因为它会使应用程序变得更大。

为什么我认为它会有用:

  1. 现在应用程序通过运行批处理文件运行(嗯,批处理文件的快捷方式,它通过批处理文件运行)。它只是调用java -jar XXX,这要求Java 在路径中,但并非总是如此。

  2. 我们是一个小团队,并没有完全在 Java 7 上运行(我们仍在尝试调试一些奇怪的错误)。如果用户使用 Java 7,他们可能会有不愉快的软件体验——这对我们不利。打包特定版本的 JRE 确保我们已经对其进行了全面测试。

  3. 我们支持 32 位和 64 位 Windows 平台。当用户下载软件时,他们选择 32 位或 64 位,但这是在询问他们使用的是哪个版本的 Java。大多数用户不知道他们的 64 位平台上是否安装了 32 位 java,即使他们的操作系统是 64 位,下载 32 位也会令人困惑。

虽然有一些很好的理由不打包它:

  1. 如果 Java 中存在安全漏洞或对 JRE 进行了其他重大更新,我们需要分发具有新 Java 版本的应用程序的新版本。我们通常每两周更新一次我们的应用,所以我现在不太关心这个。

  2. 该应用现在将变得更大,因为它包含一个打包的 JRE。

谁能提供一些指导,说明他们是否(基于这些要求)认为打包 JRE 是个好主意?如果不是,除了希望 java 在路径中之外,还有哪些替代方法(更重要的是,如果不是,我们的用户可能不知道如何添加它)。

【问题讨论】:

  • 您的应用程序不能有两个版本吗?一个捆绑了 JRE,一个不捆绑,让用户决定下载哪一个?
  • @Ivan 这当然是可能的。
  • 考虑到用户甚至没有安装系统范围的 JRE。在这种情况下,我们可以设置一个设置逻辑,如果系统范围的 JRE 缺失,则将捆绑 JRE,以及在 32 位和 64 位之间选择 JRE 的选项。如果存在系统范围的 JRE,则可以使用本地到应用程序 JRE 来避免替换系统范围的 JRE。
  • 并不是真的“大得多”,如果你从 JRE 中删除任何不需要的东西,你可以让它小到 10MB。 Proof

标签: bundle java


【解决方案1】:
  1. Java Web Start。 JRE 将在路径上。
  2. 有关版本控制,请参阅Java Web Start - Runtime Versioning,尤其是Earlier Version
  3. JWS 可以在 64 位和 32 位 JRE 之间划分资源。

所以,“捆绑 JRE 是个坏主意”。请改用 web-start。

【讨论】:

  • 在这种情况下,用户有时也没有互联网连接。他们会收到一张包含应用程序的 CD。
  • @ManfredMoser JWS 的“离线”方面仅在从命令行(或通过Process)调用时才有效。一个 JWS 应用程序。无法从 CD 上的链接启动,因为无法确定提前指定代码库的方法。
  • 我不认为 webstart 在这里真的是一个选择。用户实际上只是在寻找可以工作的安装程序(就像任何其他本机应用程序一样)。
  • 您点击它,它就可以工作(如果操作正确)。至于“就像其他应用程序一样。”。你能用任何形式的证据来支持这一点(典型的用户甚至可以分辨出差异)吗?我的经验是用户随波逐流,是开发人员被困在旧时代(或认为用户如此)。
  • 好的,公平点。我对网站没有太多经验。但是如果他们的机器上没有安装 Java,JavaWebstart 真的会对我有什么好处吗?
【解决方案2】:

我建议不要捆绑 JRE,尽管我经常将其视为一种常见做法。

相反,我会使用 webstart(也可以离线使用)或其他一些安装程序或 pacakge 管理器解决方案,以确保安装 Java 包括正确的版本。这在很大程度上取决于您希望运行的操作系统。

继续包含 Java 会引出一个问题,您还想包含什么,只是为了确定……这将引导您了解整个操作系统以及所有需要考虑的内容。

我还建议仔细研究哪些类型的用户会安装该应用并对其进行调整,并对他们的能力做出某种估计。

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 2011-10-27
    • 2018-09-13
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多