我想知道有哪些软件包可用于创建安装程序以分发应用程序。
目标应用程序是用 Java 编写的。安装程序必须能够:
- 通过 ant 脚本编译
- 被编译Linux(和Windows)
- 在 Windows 和 Linux 上运行
- 检测/处理以前安装的应用程序版本
我们目前使用IzPack,因为它完成了上述所有操作,除了后者:它不能轻易检测到以前安装的软件版本,这对我们来说是个大问题。
有没有其他符合要求的套餐?
谢谢!
我想知道有哪些软件包可用于创建安装程序以分发应用程序。
目标应用程序是用 Java 编写的。安装程序必须能够:
我们目前使用IzPack,因为它完成了上述所有操作,除了后者:它不能轻易检测到以前安装的软件版本,这对我们来说是个大问题。
有没有其他符合要求的套餐?
谢谢!
我认为您可能缺少 izPack CheckedHelloPanel
(根据在线文档)检查注册表以查看是否已经安装了另一个版本,并询问您是否要安装第二个版本。
OTOH ...如果您的意思是安装程序应该能够对以前的版本进行就地升级,那是一个非常困难的问题,而且我还没有遇到甚至尝试解决它的安装程序构建器。
编辑在非 Windows 平台上,存在一个基本问题。如果可以将应用程序安装在非标准位置,则无法 100% 确定以前是否安装了副本(相同或不同版本)。这可能是为什么CheckedHelloPanel
在 Windows 上只支持旧版本检测的根本原因。
话虽如此,izPack
它是开源的,所以如果你能找到一种方法来检测 Linux 上的先前版本,你可以修改CheckedHelloPanel
来实现它。也许izPack
会接受补丁。无论如何,我建议您在放弃您原本满意的工具之前先查看该方法。(特别是如果您想做的事情根本无法在 Linux 上完成。)
install4j可以处理您的所有要求。
试试InstallJammer 。它是免费的、开源的,应该完全符合您的要求。具体来说,它不仅会检测以前的安装,而且实际上具有一些复杂的功能,可以检测多个以前的版本并从中收集所需的信息。
下载并尝试一下,如果您有任何问题,请访问论坛并询问。我通常会很快而完整地回答每个人。0-]
试试我们的工具BitRock InstallBuilder它满足您的所有要求
InstallAnywhere 可以做到所有这些,而 ISMP(InstallShield Muli-Platform)在 Flexera 仍在销售时做到了所有这些,但它们是商业软件。我不知道有一个免费的等价物可以做所有这些事情。