java - 什么是安装 Java EE 应用程序的好的 InstallAnywhere 替代品?

标签 java installation jakarta-ee windows-installer

您建议使用哪种(商业或免费)安装程序工具来替换 InstallAnywhere作为 Java EE 应用程序的安装程序?你特别喜欢它的什么,它的缺点是什么?

一些要求:

  • 必须支持运行自定义 Java 代码 作为安装过程的一部分
  • 必须支持 Windows,包括最新的 64 位版本,如 Windows Server 2008;对其他目标操作系统的支持是一个优势
  • 必须能够安装捆绑的应用程序服务器(例如 ResinTomcat )作为 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 应用程序的最佳安装程序工具。
  • 关于java - 什么是安装 Java EE 应用程序的好的 InstallAnywhere 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759855/

    相关文章:

    java - Spring Authentication,如何为错误的凭证自定义responeText

    Java如何使用多个参数函数将List转换为Map

    JavaScriptMVC 安装

    python - Pygame 安装不起作用?

    java - 额外的 & 符号在请求中设置,从而导致错误响应

    hibernate - org.jboss.weld.exceptions.IllegalArgumentException : WELD-001456: Argument resolvedBean must not be null

    jakarta-ee - 给定一个数据库,如何为 Java EE 生成 CRUD 表单?

    java - 获取 BigFraction 的整数部分,作为 BigInteger

    java - jstack 是否停止在较新的 JDK8 版本上工作?

    Ubuntu 中的 Java 安装