您建议使用哪种(商业或免费)安装程序工具来替换 InstallAnywhere作为 Java EE 应用程序的安装程序?你特别喜欢它的什么,它的缺点是什么?
一些要求:
必须支持运行自定义 Java 代码 作为安装过程的一部分 必须支持 Windows,包括最新的 64 位版本,如 Windows Server 2008;对其他目标操作系统的支持是一个优势 必须能够安装捆绑的应用程序服务器(例如 Resin 或 Tomcat )作为 Windows 上的服务 必须支持基本的东西,如复制和移动文件、编辑配置文件、提取 ZIP 等。 (必须支持捆绑特定版本的 JRE;至少包括要提取的 ZIP)编辑:还有几点:
最好不依赖于目标机器上预装的 JRE(或任何其他 3rd 方运行时环境或库);也就是说,可以生成独立的Windows .exe(或.msi)该工具最好是跨平台的,以便安装程序开发可以在 Linux、Windows 或 Mac 上完成。 最好有一个像样的 GUI 来将安装程序放在一起。然而,一旦完成,它 必须可以跳过 GUI 并使安装程序构建成为自动构建过程的一部分。
在这种情况下,不幸的是,SO 并没有告诉我们太多我们已经不知道的信息(实际上,我们最终选择的工具没有在任何答案中提及)。但是,我在这里发布我们的经验,因为它们以后可能对其他人有所帮助。
我们(快速)评估了以下安装程序工具,主要是通过查看他们的网站和浏览网络上的其他信息:Actual Installer , Advanced Installer , BitRock InstallBuilder , Inno Setup , Install Creator , Installer VISE for Windows , InstallShield , install4j , IzPack , NSIS , openInstaller , Scriptlogic MSI Studio , Smart Install Maker , Symantec Wise Installation Studio , 和 WiX .
我们很早就筛选了其中的大部分,最终列出了两个选项以供进一步评估: BitRock InstallBuilder 和 install4j .对于这些工具,我们下载了评估版本并进行了一些原型(prototype)设计,以查看对我们来说最重要的东西是否真的得到支持,以及让它们工作的难易程度。
这两个选项在很多方面都很好(并且似乎都是 InstallAnywhere 的不错选择):
它们生成完全原生且漂亮的 Windows .exe 安装程序,它们是
易于使用您自己的图形等进行自定义这两种工具都可以轻松实现自动化,以便从 Ant 触发安装程序构建。 (使用 install4j,我只用了 5 分钟就到了 learn it,然后实现了它。)两家公司似乎都得到了很好的支持(好吧,至少对于评估他们产品的潜在客户而言是这样;-)尤其是从 BitRock 那里,我们得到了非常快的答复。 在以下方面,install4j 似乎比 BitRock 更能满足我们的需求(当然,其中许多是主观的,所以 YMMV):
install4j 肯定对运行自定义 Java 代码有更好的支持——它可以在安装过程中的任何时候完成,而不管系统上是否有任何预装的 JRE。 BitRock 使用更硬编码的安装步骤序列,而 install4j 更灵活。在 install4j 中,可以在安装任何文件之前或之后的任何时候添加自定义屏幕和表单(带有或不带有自定义 Java 代码)、询问用户输入等。 还有一些基本的事情,比如定义要复制到目标系统的文件集,以及添加安装步骤来替换配置文件中的某些字符串,在 install4j 中似乎更容易一些。 install4j 更好地支持 JRE 捆绑 在 Linux 上创建安装程序时,install4j IDE 的外观和感觉比 BitRock 更好(更“ native ”) (install4j 的 licensing options 对我们来说更好——我们强烈希望有几个 float 许可证,而不是所有开发人员的命名许可证或昂贵的“站点许可证”)所以最终我们选择了
install4j .以下是有关其令人印象深刻的原因的更多详细信息:
它的 IDE,您将安装程序放在一起,非常简单且易于使用 - 我可以弄清楚如何快速完成我想做的大多数事情,甚至无需查看文档。当我确实必须检查文档中的某些内容时(例如如何引用 installer variables ;如何引用 get started writing custom Java code against the install4j API ),很快就找到了我需要的东西。 您可以在安装过程中完全自定义屏幕和操作,也可以随时添加自定义屏幕和操作(根据其 Java API 编码)。这对我们很重要,因为我们需要重用旧 InstallAnywhere 安装程序中现有的自定义 Java 代码。 在一些小细节上,install4j 似乎是 Java 开发人员的理想选择。例如,如果您想添加一个验证脚本来检查一些用户输入,您可以在 install4j IDE 本身中非常快速地编写代码,使用普通的旧 Java,并提供类似于 IntelliJ IDEA 的编码帮助。 我们认为 install4j float 许可证的成本是合理的,考虑到该工具有多好(与 InstallAnywhere 的夸大定价相比,这是非常划算的......)简而言之,它似乎是可用于部署 Java 应用程序的最佳安装程序工具。