【问题标题】:Installer for java applicationjava应用程序的安装程序
【发布时间】:2011-01-29 06:32:52
【问题描述】:

我想知道有哪些软件包可用于创建安装程序以分发应用程序。

目标应用程序是用 Java 编写的。安装程序必须能够:

  • 通过 ant 脚本编译
  • 可编译 Linux(和 Windows)
  • 在 Windows 和 Linux 上运行
  • 检测/处理以前安装的应用版本

我们目前使用IzPack,因为它可以完成上述所有操作,但后者除外:它无法轻松检测到以前安装的软件版本,这对我们来说是个大问题。

是否还有其他符合要求的套餐?

谢谢!

【问题讨论】:

  • “相关”侧边栏中至少有三个重复项。
  • @Paul Tomblin :除了它们都没有解决我的问题的症结,即detect / handle previously installed versions of the application。编辑以强调这一点。
  • 确实作者说得很清楚,即使是在原版中,问题的症结所在。粗略一看,任何事情都可能看起来像个骗子,但了解问题中的核心问题很重要。

标签: java ant installation previous-installation


【解决方案1】:

我认为您可能缺少 izPack 的 CheckedHelloPanel(根据在线文档)检查注册表以查看是否已安装另一个版本,并询问您是否要安装第二个版本。

OTOH ...如果您的意思是安装程序应该能够对以前的版本进行就地升级,那是一个非常困难的问题,而且我还没有遇到甚至尝试解决的安装程序构建器它。

编辑 在非 Windows 平台上,存在一个根本问题。如果可以将应用程序安装在非标准位置,则不可能 100% 确定以前是否安装了(相同或不同版本的)副本。这可能是为什么CheckedHelloPanel 只支持Windows 上的旧版本检测的根本原因。

话虽如此,izPack 是开源的,所以如果你能找到一种在 Linux 上检测以前版本的方法,你可以修改CheckedHelloPanel 来实现它。也许izPack 会接受补丁。无论如何,我建议您在放弃您原本满意的工具之前先查看该方法。 (特别是如果您想做的事情根本无法在 Linux 上完成。)

【讨论】:

  • @Stephen C,我已经考虑过,但是,该功能仅在 Windows 中可用,并且我的安装程序需要在 Windows 上运行。 Additonal on windows the registry will be scanned for an entry which determines that the product is already installed (izpack.org/documentation/panels.html#id4)
  • @Stephen C,我也不要求它能够进行就地升级。假设第一个版本尚未安装,但后续版本应该会检测到之前安装的版本。
  • +1 并检查@Stephen C :我已经听从了你的建议,除了扩展CheckedHelloPanel 并没有很好地工作(至少对于我的目标应用程序)。 H/w 我已经扩展 IzPanel 以达到类似的效果,所以感谢您的建议!
【解决方案2】:

install4j 可以满足您的所有要求。

【讨论】:

    【解决方案3】:

    试试InstallJammer。它是免费的、开源的,应该完全符合您的要求。具体来说,它不仅会检测以前的安装,而且实际上具有一些复杂的功能,可以检测多个以前的版本并从中收集所需的信息。

    下载并尝试一下,如果您有任何问题,请访问论坛并询问。我通常会很快而完整地回答每个人。 0-]

    【讨论】:

    • @Damon,我查看了文档,在Check for previous installAdd install info 下,引用了registryinstall registry。我担心这些等同于(部分)Windows 注册表。如果不是,此注册表实际位于何处?
    • InstallJammer 在目标系统上保留自己的安装“注册表”。这些存储在磁盘上,而不是在 Windows 注册表中,即使在 Windows 系统上也是如此。每次安装都会在 IJ 注册表中存储一些基本信息,这些信息用于检查以前的安装。如果需要,您还可以在每次安装时存储自己的信息,因为安装程序只存储它需要的信息。这是一个非常灵活的系统,所以我想你会发现你可以从中获得任何你想要的信息。
    【解决方案4】:

    试试我们的工具,BitRock InstallBuilder 它满足您的所有要求

    【讨论】:

      【解决方案5】:

      InstallAnywhere 可以做到这一切,而 ISMP(InstallShield Multi-Platform)在 Flexera 还在销售时就做到了,但它们是商业软件。我不知道有什么免费的等价物可以做所有这些事情。

      【讨论】:

      • 我们在工作中使用 InstallAnywhere,我会推荐它。
      • 我们也在工作中使用它......我的同事正试图说服管理层转向另一个工具,这是一场噩梦,而且在构建和测试它所需的时间方面非常没有生产力。我认为下一个版本将与 InstallShield 一起使用
      • 制造InstallAnywhere和InstallShield Multi-Platform的公司被第三家公司收购,它们的产品线被合并。底线是 ISMP 不再上市。他们仍然销售用于 Windows 原生安装的“InstallShield”产品,但不销售多平台产品。
      • 在我以前的公司中,ISMP 用户的挫败感是我们创建 BitRock 的原因 :) InstallAnywhere 是一个更好的继任者,但仍然很痛苦
      猜你喜欢
      • 2023-03-22
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多