我们有一个Web应用程序,我们需要使该应用程序更易于为客户进行部署。
全新安装的当前工作流程:
对于我们的用户来说,这是一个繁琐的过程
我想将其封装到一个安装程序中,并一直在NSIS中(似乎有一个庞大的社区)进行研究,但是随后偶然发现了install4j,尽管它似乎鲜为人知,但它更特定于基于Java的应用程序。
只是想从更多经验丰富的用户那里获得一些有关平台最佳选择的反馈。
我不想半途而废,然后意识到我选择了错误的安装程序平台。
最佳答案
免责声明:我公司开发install4j。
首先,install4j是一种商业工具,因此与NSIS有很大的不同。其他主要区别是:
对于install4j,我可以满足您的单个要求:
在媒体向导中,选择一个JRE捆绑软件。如果选择“动态捆绑包”选项,则只有在找不到合适的JRE时才下载该选项。
我建议仅将现有tomcat安装的根目录添加到您的分发树中。
至于服务,您可以使用Tomcat发行版中的Tomcat服务启动器,也可以在install4j中创建服务启动器。在两种情况下,您都可以对安装使用“安装服务”操作。
生成的服务具有以下优点:更新安装程序知道它们正在运行,并在安装任何新文件之前自动将其关闭。
使用“运行可执行文件或批处理文件”操作以运行这些脚本。
任何类型的用户交互都是通过可配置的形式完成的。使用几个文本字段表单组件,您可以查询您的设置。
这也可以在控制台安装程序中透明地工作,并且自动生成的响应文件将允许您基于GUI安装程序的一次执行以无人参与模式自动进行安装。
如果您已经具有执行此操作的JAR文件,只需将其添加到安装程序->自定义代码和资源下,然后向安装程序中添加“运行脚本”操作即可使用JAR文件中的类。
表单组件中已保存到安装程序变量中的任何用户输入都可以通过如下调用进行访问:
context.getVariable("greetingOption")
在“运行脚本”操作的脚本属性中(或install4j中的任何其他脚本)。
如果仅将Tomcat目录结构添加到分发树,则可以预先部署这些WAR文件。否则,您可以使用“复制文件”操作将WAR文件放置在任何位置。
这是通过“启动服务”操作完成的。
关于nsis - 根据我的要求,我应该使用NSIS还是jprofiler/install4j,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7528932/