根据我的要求,我应该使用NSIS或jprofiler / install4j

时间:2011-09-23 12:29:39

标签: nsis jprofiler install4j

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

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

这对我们的用户来说是一个繁琐的过程 我想将它封装到一个安装程序中,并且一直在NSIS中看到这样做,它似乎有一个大型社区,但后来偶然发现了install4j,虽然看起来鲜为人知,但更具体的是基于java的应用程序。

只是希望从更多经验丰富的用户那里得到一些平台的最佳选择。

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

1 个答案:

答案 0 :(得分:11)

免责声明:我公司开发了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时才会下载。

enter image description here

  

安装Tomcat(32或64位)

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

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

生成的服务具有以下优势:更新安装程序知道它们正在运行并在安装任何新文件之前自动将其关闭。

enter image description here

  

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

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

  

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

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

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

enter image description here

  

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

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

可以使用

等调用访问已保存到安装程序变量的表单组件的任何用户输入
context.getVariable("greetingOption")

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

  

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

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

  

启动Tomcat以便部署WAR

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