不幸的是,在这种情况下,SO并没有告诉我们太多我们不知道的事情(事实上,我们最终选择的工具在任何答案中都没有提到)。但是,我在这里发布我们的经验,因为它们可能会在以后对其他人有所帮助。
我们(快速)评估了以下安装程序工具,主要是通过查看他们的网站并在网络上浏览其他信息:实际安装程序,高级安装程序,BitRock InstallBuilder,Inno Setup,Install Creator,Installer VISE for Windows,InstallShield,install4j,IzPack,NSIS,openInstaller,Scriptlogic MSI Studio,Smart Install Maker、赛门铁克 Wise Installation Studio 和 WiX。
我们很早就筛选了其中的大多数,并最终列出了两个选项以进行更仔细的评估:BitRock InstallBuilder和install4j。对于这些工具,我们下载了评估版本并进行了一些原型设计,以查看对我们最重要的事情是否真的得到支持,以及让事情正常工作有多容易或多难。
这两个选项在很多事情上都很好(而且两者似乎都是InstallAnywhere的好选择):
- 他们生产完全本机和漂亮的Windows.exe安装程序,这些安装程序易于使用您自己的图形等进行自定义。
- 这两个工具都可以很容易地自动化,以便从Ant触发安装程序构建(使用install4j,我只需要五分钟来学习它,然后实现它。
- 两家公司似乎都得到了很好的支持(好吧,至少对于评估其产品的潜在客户来说;-)特别是从BitRock,我们得到了非常快速的回复。
在以下几件事中,install4j似乎比比特摇滚更适合我们的需求(当然,其中许多都是主观的,所以YMMV):
- install4j绝对支持运行自定义Java代码 - 它可以在安装过程中的任何时候完成,并且无论系统上是否有任何预安装的JRE。
- BitRock使用更硬编码的安装步骤序列,而install4j更灵活。在 install4j 中,添加自定义屏幕和表单(带或不带自定义 Java 代码)、请求用户输入等,可以在安装任何文件之前或之后的任何时间点完成。
- 此外,一些基本的事情,例如定义要复制到目标系统的文件集,以及添加安装步骤以替换配置文件中的某些字符串,在 install4j 中似乎更容易一些。
- install4j对JRE捆绑有更好的支持
- 在Linux上创建安装程序时,install4j IDE的外观和感觉比BitRock更好(更“原生”
- (install4j的许可选项对我们来说更好 - 我们强烈希望有几个浮动许可证,而不是所有开发人员的命名许可证或昂贵的“站点许可证”)
所以最终我们选择了 install4j。以下是关于为什么它令人印象深刻的更多细节:
- 它的IDE,你把安装程序放在一起,非常简单易用 - 我可以弄清楚如何快速完成我想要的大多数事情,即使不看文档。当我确实必须检查文档中的某些内容(例如,如何引用安装程序变量;如何开始针对install4j API编写自定义Java代码)时,很快就找到了我需要的东西。
- 您可以在安装过程中完全自定义屏幕和操作,也可以随时添加自定义屏幕和操作(根据其 Java API 编码)。这对我们来说很重要,因为我们需要重用旧的InstallAnywhere安装程序中的现有自定义Java代码。
- 在一些小细节中,install4j似乎是Java开发人员的理想选择。例如,如果你想添加一个验证脚本来检查一些用户输入,你可以在 install4j IDE 本身中非常快速地编码,使用普通的旧 Java,并提供类似于 IntelliJ IDEA 的编码帮助。
- 考虑到该工具有多好,我们认为install4j浮动许可证的成本是合理的(与InstallAnywhere的夸大定价相比,这是彻头彻尾的讨价还价......
- 简而言之,它似乎是可用于部署Java应用程序的最佳安装程序工具。