【问题标题】:Based on my requirements, should I use NSIS or jprofiler/install4j根据我的要求,我应该使用 NSIS 还是 jprofiler/install4j
【发布时间】:2011-09-23 12:29:38
【问题描述】:

我们有一个 Web 应用程序,我们需要为我们的客户更轻松地部署它。 全新安装的当前工作流程:

  • 确保机器上有 JRE(32 位或 64 位)
  • 安装 Tomcat(32 位或 64 位)
  • 在 Oracle 或 SQL Server 中创建数据库(我们为此提供了 SQL 脚本)
  • 将一些值写入我们的设置表,例如主机名。 (可以让用户验证这些,但不希望用户必须点击它们。
  • 创建一个位于 Tomcat 下的连接属性文件(我们提供了一个迷你 JAR 应用程序来帮助解决这个问题)。
  • 我们有两个用于实际 Web 应用程序的 WAR 文件。这些可以拆分到两台机器上,但现在,让我们假设它们都被转储到 Tomcat 下。
  • 启动 Tomcat 以部署 WAR

这对我们的用户来说是一个乏味的过程 我想将它封装到一个安装程序中,并且一直在考虑在 NSIS 中执行此操作,它似乎拥有一个大型社区,但后来也偶然发现了 install4j,虽然它似乎鲜为人知,但它更特定于基于 java 的应用程序。

只是想从更有经验的用户那里获得一些关于平台最佳选择的反馈。

我不想半途而废,然后意识到我选择了错误的安装程序平台。

【问题讨论】:

    标签: nsis jprofiler install4j


    【解决方案1】:

    免责声明:我公司开发 install4j。

    首先,install4j 是一个商业工具,所以这与 NSIS 有很大的不同。其他主要区别是:

    • install4j 是一个多平台安装程序构建器,适用于 Windows、Mac OS X 和所有 POSIX 兼容的 Linux 和 Unix 平台。
    • install4j 的主要重点是安装基于 Java 的应用程序,例如,它处理启动器和服务的创建,并提供多种捆绑 JRE 的策略。 Java 应用程序所需的许多东西都是开箱即用的。
    • install4j 提供自己的 IDE,专注于易用性
    • 脚本是用 Java 编写的。 IDE 提供具有代码完成和错误分析功能的内置编辑器。操作、屏幕和表单组件具有广泛的“脚本属性”,可让您自定义安装程序的行为。

    对于 install4j,我可以满足您的单一要求:

    确保机器上有 JRE(32 位或 64 位)

    在媒体向导中,选择一个 JRE 包。如果选择“动态捆绑包”选项,只有在没有找到合适的 JRE 时才会下载。

    安装 Tomcat(32 位或 64 位)

    我建议简单地将现有 tomcat 安装的根目录添加到您的分发树中。

    至于服务,您可以使用 Tomcat 发行版中的 Tomcat 服务启动器,也可以在 install4j 中创建服务启动器。在这两种情况下,您都可以使用“安装服务”操作来安装服务。

    生成的服务的优点是更新安装程序知道它们正在运行并在安装任何新文件之前自动关闭它们。

    在 Oracle 或 SQL Server 中创建数据库(我们为此提供了 SQL 脚本)

    使用“运行可执行文件或批处理文件”操作来运行这些脚本。

    将一些值写入我们的设置表,例如主机名。 (可以让用户验证这些, 但不希望用户必须点击它们。

    任何类型的用户交互都是通过可配置的表单完成的。通过几个文本字段表单组件,您可以查询您的设置。

    这在控制台安装程序中也可以透​​明地工作,并且自动生成的响应文件将允许您基于 GUI 安装程序的单次执行以无人参与模式自动安装。

    创建一个连接属性文件(我们提供了一个迷你 JAR 应用程序来帮助解决这个问题) 将位于 Tomcat 下。

    如果您已经有一个执行此操作的 JAR 文件,只需将其添加到 Installer->Custom Code & Resources 下,然后将“运行脚本”操作添加到您的安装程序以使用 JAR 文件中的类。

    已保存到安装程序变量的表单组件的任何用户输入都可以通过如下调用访问

    context.getVariable("greetingOption")
    

    在“运行脚本”操作(或 install4j 中的任何其他脚本)的脚本属性中。

    我们有两个用于实际 Web 应用程序的 WAR 文件。这些可以分为两个 机器,但现在,让我们假设它们都被转储在 Tomcat 下。

    如果您只是将 Tomcat 目录结构添加到您的分发树中,您可以预先部署这些 WAR 文件。否则,您可以使用“复制文件”操作将 WAR 文件放置在任何位置。

    启动 Tomcat 以部署 WAR

    这是通过“启动服务”操作完成的。

    【讨论】:

    • 您能否详细说明 install4j 使用它自己的 IDE。它是专门用于设置安装程序的 IDE 吗?我还可以使用 intellij 开发我的 java 应用程序吗?
    • 是的,install4j IDE 仅用于为安装程序开发自定义代码,而不是为应用程序本身开发。
    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2023-03-06
    • 2013-02-20
    相关资源
    最近更新 更多