2011-09-23 27 views
5

我们有一个Web应用程序,我们需要为我们的客户更容易部署。 的新鲜当前工作流安装:根据我的要求,我应该使用NSIS还是jprofiler/install4j

  • 确保有机器上的JRE(32位或64位)
  • 安装Tomcat(32位或64位)
  • 创建Oracle或SQL Server数据库(我们为此提供SQL脚本)
  • 在我们的设置表中写入一些值,例如主机名。 (可以得到用户验证这些,但不希望用户必须点击它们。
  • 创建连接属性文件(我们提供了一个小型JAR程序,以帮助这一点),这将在Tomcat下坐。
  • 我们有两个战文件,我们实际的Web应用程序。这可以在两台机器进行分割,但现在,让我们假设他们都得到在Tomcat下倾倒。
  • 启动Tomcat,使其展开的战争

这是一个对我们的用户来说是一个繁琐的过程 我想将它封装到一个安装程序中,并且一直在NSIS中进行这项工作,它似乎有一个大型通信ty,但后来也偶然发现了install4j,尽管它似乎不太为人所知,但它更适用于基于Java的应用程序。

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

我不想进入中途,然后意识到我选择了错误的安装程序平台。

回答

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脚本)

使用“运行可执行文件或批处理文件”的行动。

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

任何类型的用户互动与配置的形式完成的。一对夫妇文本字段表格组件,您可以查询您的设置。

这也适用于透明的控制台安装程序并自动生成的响应文件将允许您以无人参与模式基于GUI的安装程序的一次执行自动安装。

enter image description here

创建一个连接属性文件(我们提供了一个微型JAR应用程序来帮助完成此操作), 将位于Tomcat下。

如果你已经有了一个JAR文件,其这样做,只是将它加入下Installer->自定义代码&资源,并添加一个“运行脚本”行动,您的安装程序使用的类的JAR文件。

从已保存上一步变量形式组件的任何用户输入可以调用像

context.getVariable("greetingOption") 
在“运行脚本”操作(或install4j任何其他脚本)的脚本属性

访问。

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

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

启动Tomcat,使其展开的战争

这与“启动服务”的动作来完成。

相关问题