当前位置:  开发笔记 > 编程语言 > 正文

什么是安装Java EE应用程序的优秀InstallAnywhere替换?

如何解决《什么是安装JavaEE应用程序的优秀InstallAnywhere替换?》经验,为你挑选了4个好方法。

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

一些要求:

必须支持在安装过程中运行自定义Java代码

必须支持Windows,包括最新的64位版本,如Windows Server 2008; 支持其他目标操作系统是一个加号

必须能够在Windows上将捆绑的应用程序服务器(如Resin或Tomcat)安装为服务

必须支持基本的东西,如复制和移动文件,编辑配置文件,提取ZIP等.

(必须支持捆绑特定版本的JRE;至少包括要提取的ZIP)

编辑:还有几点:

优选地,不依赖于目标机器上预先安装的JRE(或任何其他第三方运行时环境或库); 换句话说,可以生成一个独立的Windows .exe(或.msi)

该工具最好应该是跨平台的,以便可以在Linux,Windows或Mac上完成安装程序开发.

最好应该有一个合适的GUI来安装安装程序.但是,一旦完成,就必须跳过GUI并使安装程序构建自动构建过程的一部分.


编辑:我发布了一个单独的答案,关于我们最终选择了什么以及为什么.



1> Jonik..:

在这种情况下,不幸的是,SO并没有告诉我们很多我们已经不知道的事实(事实上我们最终选择的工具在任何答案都没有提及).但是,我在这里发布了我们的经验,因为它们可能会对以后的其他人有所帮助.

我们(快速)评估了以下安装程序工具,主要是通过查看他们的网站并浏览Web上的其他信息: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 InstallBuilderinstall4j.对于这些工具,我们下载了评估版本并进行了一些原型设计,以确定是否真正支持对我们最重要的事情,以及让事情变得有效或多么容易.

这两个选项在很多方面都很好(两者都是InstallAnywhere的好替代品):

他们生产完全原生的和漂亮的Windows .exe安装程序,可以使用您自己的图形轻松自定义等.

这两个工具都可以轻松实现自动化,以便从Ant触发安装程序构建.(使用install4j,我只花了五分钟学习它,然后实现它.)

两家公司似乎都得到了很好的支持(好吧,至少对于评估他们产品的潜在客户而言;-)尤其是来自BitRock的我们得到了很快的回复.

在下面的内容中,对于我们的需求,install4j似乎比BitRock更好(其中许多是主观的,当然,所以YMMV):

install4j肯定能更好地支持运行自定义Java代码 - 它可以在安装过程中的任何时候完成,无论系统上是否有预装的JRE.

BitRock使用更加硬编码的安装步骤,而install4j更灵活.在install4j中,可以在安装任何文件之前或之后的任何时候添加自定义屏幕和表单(带或不带自定义Java代码),询问用户输入等.

还有一些基本的东西,比如定义要复制到目标系统的文件集,以及在install4j中添加安装步骤来替换配置文件中的某些字符串似乎更容易一些.

install4j更好地支持JRE捆绑

在Linux上创建安装程序时,install4j IDE的外观比BitRock更好(更"本机")

(install4j的许可选项对我们来说更好 - 我们强烈希望为所有开发人员指定许可证的几个浮动许可证或昂贵的"站点许可证")

所以最终我们选择了install4j.以下是有关其令人印象深刻的原因的更多细节:

它将安装程序放在一起的IDE非常简单易用 - 即使不查看文档,我也可以弄清楚如何快速完成我想要的大多数事情.当我必须检查文档中的某些内容时(例如,如何引用安装程序变量 ;如何开始针对install4j API编写自定义Java代码),找到我需要的内容并不需要很长时间.

您可以在安装过程中完全自定义屏幕和操作,还可以随时添加自定义屏幕和操作(针对其Java API编码).这对我们很重要,因为我们需要从旧的InstallAnywhere安装程序重用现有的自定义Java代码.

在一些小细节中,install4j似乎是Java开发人员的理想选择.例如,如果要添加验证脚本以检查某些用户输入,可以使用普通的旧Java在install4j IDE本身中快速编码,编码协助类似于IntelliJ IDEA.

我们认为install4j浮动许可证的成本是合理的,考虑到该工具有多好(与InstallAnywhere的膨胀定价相比,彻底讨价还价......)

简而言之,它似乎是可用于部署Java应用程序的最佳安装程序工具.



2> Daniel Lopez..:

我们创建了BitRock InstallBuilder,这是一个跨平台安装工具,经过一些令人沮丧的InstallAnywhere体验,特别是它的堂兄(现已不存在)InstallShield MP.超过一半的客户使用我们的工具来打包基于Java的软件,但该工具是原生的,而不是基于Java的.这意味着我们有许多优点,例如原生外观(包括Vista,GTK,Qt等),并且无需在安装之前进行自我提取(更快的启动,更少的空间要求)来提及一对.回答您的具体问题:

支持在多个时间点调用Java代码作为安装的一部分(例如,在显示某个页面时,在卸载时复制文件等).代码未在安装程序中编译,但可以在外部调用,并在安装程序中使用结果.如果您更具体地了解您需要哪种代码,我可以提供具体的示例代码.我们有许多内置的功能需要手动添加到其他安装程序,因此您可能不需要首先编写该代码!

我们支持所有版本的Windows,包括64位和Windows 2008(多个客户已使用我们的安装程序在这些平台上进行了认证)

我们支持捆绑的应用服务器,包括Tomcat,Resin,JBoss等.看一下BitNami,了解我们创建的此类堆栈的示例.

我们支持复制和移动文件,替换配置文件中的值,解压缩文件和大多数其他常见安装功能.我们的一个原则是安装程序应该为常见的安装操作提供内置支持,并且具有一个简单,干净的界面,用于调用特定于客户端产品的外部代码.

我们支持捆绑JRE,正如您所提到的那样,通常只需捆绑JRE目录并在启动脚本中为JAVA_HOME设置适当的值

你可以看看我们的一些客户,如MySQL,三星,摩托罗拉,GitHub等.InstallBuilder是一个商业产品,但我们提供开源项目的免费许可和小企业和microISV的折扣.



3> Brian Agnew..:

我可以保证izPack.它是基于Ant的,因此您可以在其中打包Ant安装,并且Ant安装可以包含自定义任务和/或在Ant build.xml中编写的脚本(例如,使用Groovy,Beanshell或任何支持BSF的脚本语言).所以它将涵盖您的可定制要求.

我过去用过以上所有内容 - 解压缩/服务/自定义代码.它是多平台的,虽然我无法保证上面的特定实例(64位Windows).但如果它运行Java,你应该没问题.

令人头疼的是JRE.你显然需要一些 JRE来运行它.但是我认为您应该能够在izPack中打包并执行特定的JRE安装.


如果您要定制任何东西,请远离izPack.代码和结构是绝对可怕和脆弱的,并且为我们需要的少量定制花费了大量的工作......

4> springcorn..:

只是想补充一点,我的公司已经使用了InstallAnywhere大约6年,但我们决定继续前进.原因有两个.

首先,他们的定价是绝对的高速公路抢劫,与直接竞争对手如INstall4J和BitRock相比,许可严格限制.

我对InstallAnywhere的另一个问题是产品只能进行最低限度的维护.我已经使用该产品6到7年来通过许多不同的版本和错误很少修复,你肯定不能指望新的功能.基本上你可以期待的是,它们将为新版本的windows/mac添加支持.他们的支持费用相当昂贵,但我从未收到过实际支持请求.当我第一次购买该产品时,我相信它来自一家名为ZeroG的公司,他专注于该产品.他们实际上维护和改进了产品.那时候它是唯一真正的机票,它们在竞争中脱颖而出.

然后它被Macrovision和Flexera收购.自从ZeroG销售该产品以来,它一直是该公司的辅助产品,对它的关注一直很差.似乎它是为了完成一套产品而购买的,而不是因为该公司实际上想要维护该产品.

谨慎一点,仔细评估这些产品,因为你可以与它们联系在一起.我们本可以更早地离开产品,但是我们不仅投入了大量精力,而且还根据产品的功能/限制设置了自动更新方案,因为劳动力投入使产品离开产品成本很高.在新产品中重现这一点.

只是我的看法,但我不推荐InstallAnywhere.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有