注:这是 2004 年写的一篇老文了,现在我们用 innosetup ,用起来也比较顺手,主要是通过脚本,但可以先生成一个样例脚本,然后再在上面修改,以适合自己的需求。
目的
在目前可以获得的资料的基础上,对目前市场上的各种安装工具进行比较,并最终选出一个或两个适合我们的产品使用的安装工具。
参考的工具有:InstallAnywhere V6(Zero G), InstallShield X (InstallShield) , EasySetUp V3.04(Bersoft Inc.),小颖安装程序制作专家V5
概述
目前市场占有率最高的产品应该是InstallShield,但InstallShield提供的例子或模板更多的是针对Windows平台的,不过最新的版本X也提供了对别的平台的支持。Install Anywhere 由于它本身是用Java开发的,它提供的例子主要是基于Java的,另外由于众所周知的Java程序的跨平台性,所以它声称可以支持各种平台。在Java应用的安装程序方面,Install Anywhere应该是市场占有率最高的产品。另外,还有一些别的产品,比如Bersoft公司的EasySetup,非常简洁易用,但功能似乎又不够强。以上这些都是国外的产品,国内的产品应该也有一些,但目前我看到的一些都是大同小异,所以只列出一个“小颖安装制作程序”。
另外,大多数安装软件都有一些共有的功能,比如最基本的文件拷贝功能,反安装程序的生成等等,对于需求简单的安装制作,这些基本功能就可以满足。
各种产品的功能特点
1、InstallShield
InstallShield是著名的专业的安装程序制作软件,使用非常广泛。它包含Windows Installer(MSI)支持、可视化对话框编辑器(Visual Dialog Editor)、源代码控制等。还可以与Visual Studio .NET结合、可以创建补丁、支持修改Autoexec.bat, config.sys、注册表、加入产品的注册码,自动生成反安装程序等,功能非常强大。
主要功能列表如下:
¨ 平台相关的功能
运行时:Windows 95/98/NT 4/2000/Win ME/XP/AIX
设计时:Windows 98/NT4/2000/Me/XP
支持所有Palm OSR 装置及所有Windows Mobile 装置
支持64位应用
支持多种语言
¨ 自定义功能
全新视觉对话框编辑器(Visual Dialog Editor)
可以增加新对话框或自定义对话框中的文本与位图
轻松建立自定义事件(Custom Events)
可以通过InstallScript加入自定义的逻辑
提供VB Script 及JScript Code 编辑器
¨ 其它
支持JVM Handling,XML及Apache Ant Target处理
提供一系列安装选择
整合的Add-In 管理员
完整的Windows安装支持(MSI)
在执行之前会检验及安装前提(Installation Prerequisites)
自动查找与包含安装依赖的文件。
轻松建立Patches及更新
可以创建不同发布版本间的更新版本
自动修复、按需安装
支持SQL 服务器 -
支持IIS Web 服务器,可以容易地发布与安装Web程序
可以创建.net安装程序与分发.net框架。
在同一系统上安装一个应用的多份拷贝
可视化的注册表\shell编辑
可以运行外部程序(e.g.,EXE,DLL,VBScript)
内置包含第三方的技术模块
动态文件链接
可以创建可重用的组件
提供命令行编译工具
可以发布自解压程序及自定义卸载程序
可以通过Internet分发
2、Install Anywhere
InstallAnywhere由Zero G公司开发。Zero G在多平台软件部署和维护领域是佼佼者。其代表产品有InstallAnywhere和PowerUpdate。InstallAnywhere使用简单、高效,并在提供跨平台支持的同时支持29种语言(包括简体中文)赢得了很多客户的青睐。
InstallAnywhere是多平台软件配置的业界领先者,数以千万计的软件采用它来安装和配置。软件的创新者,例如Adobe, Borland, HP, i2, IBM, Intel, 朗讯, 北电, Sun和TIBCO,这些业界的领先者采用InstallAnywhere来实现快速、强大、直观的安装。事实上,由<软件杂志>评选出的全球25大软件厂商都使用了InstallAnywhere。
主要功能列表如下:
¨ 平台相关:
已经扩大了对于Red Hat Enterprise Server, SUSE Linux, z/OS 和 OS/390. 平台的支持。其他支持的平台还有Windows Server 2003 以至整个Windows 家族, Solaris, AIX, HP-UX, Linux, NetWare, Mac OS X, IRIX, Tru64, FreeBSD,和所有其他JAVA能够运行的平台。 InstallAnywhere与所有的JAVA版本兼容,包括Sun、IBM、Apple和其他公司最新发布的JAVA执行器。
¨ 针对平台的功能
Windows 注册:检索、设置并检验现有的主键和数据
Windows 快捷键:Mac aliases (with Dock support), UNIX 链接
Windows 服务:安装、启动、停止、暂停任何服务
本地化的Windows, Mac OS, UNIX 使用效果
设置Windows和UNIX环境下的系统环境变量
集成 Linux RPM
Windows 卸载工具支持注册表的重新运行以及新增/移除程序
自动修改起始的脚本文件和 UNIX daemons文件
¨ 针对 Java 应用程序配置的功能
自动安装Java VM。
完全支持所有的Java1.3版本,甚至包括Java 1.4 和J2EE 1.3 甚至J2SE1.5
安装EJBs, servlets, JSPs, JAR, WAR, 和EAR archives
创建 LaunchAnywhere (Zero G的Java应用程序发布技术) ,终端用户只需双击 Windows或Mac上的图标,或是在Solaris和Linux上输入简单的命令,就可以启动Java 程序。
Java Classpath 和主类的自动检测。
完全支持所有的Java运行选项。
针对服务器、 Web Services 和J2EE 配置的功能
¨ 内置功能
内置安装步骤列表,突出安装的每一阶段
内置安装器面板:介绍、要点、协议、选择安装文件、用户输入、密码、序列号、功能集、部件、安装摘要,等等。
内置的命令行控制台的交互以匹配图象化的面板
内置动作:创建快捷键、释放归档文件、使用搜索和替代功能修改文本文件,安装并控制Windows Services、设置注册表录入、设置环境变量执行命令和脚本,等等。
内置规则:检验平台、对比变量、验证用户输入、检验位置、确认文件/文件夹的属性
¨ 扩展性
用户可使用Java和基于JavaBeans的开放API,扩展设计自定义的动作、面板和控制台
插入行为(Pluggable Actions):可定制用户自己设计器中调色板的编码行为和面板
项目模板(Project Templates):创建能够多次统一重复使用的项目模板。
¨ 其它主要功能
通用的安装、配置和客户化功能
可以在终端用户的系统上,将文件和文件夹安装于任何位置
在Read Me, License Agreement和其他的安装面板中完全支持HTML格式的文本。
完全的鼠标拖动支持,上下文右击菜单可以快速地获取常用的功能。
使用GIF, JPEG, 和PNG文件,并借助透明和动作功能完全客户化图形、公告牌、主题和品牌的显示。
合并模块技术可以方便地创建"整套"安装程序,子安装程序和模板。可以在你的开发团队甚至是整个企业内部,将安装程序的可重用性由一个项目传递到另一个项目也可源自于第三方的供应商。
卸载工具可以实现部分或全部的卸载功能
使用高级的搜索和替代功能修改服务器属性文件。
Magic Folders技术:为桌面、系统、主页、性能、字体以及其他位置提供的专用文件夹
Media Spanning: 媒体分割:在多张CD 或者 DVD中创建安装包,此功能对软件套件和集成项目同样有效
Localized Designer: 本地化设计器:法国,德国和日本的开发人员能够使用本地的语言创建安装包,更容易创建29种语言的安装包。
Customizable Uninstaller: 定制反安装包:在凡安装程序中,增加自己的面板,控制台和行为。 完美的完成多控件套件。
Native Package Installations: 本地包安装:作为InstallAnywhere安装程序的一部分,轻松的安装Linux RPMs,Solaris包和HP-UX库文件。
针对数据库注册选项的用户自定义面板
创建过程集成(Build Process Integration):使用Apache Ant来控制InstallAnywhere的创建过程
¨ 无论应用程序是用Java, C++, PERL, C#编写的,还是用EJB 或.NET Web services配置的,InstallAnywhere都可以将你的桌面、企业或多层Web services软件配置到你的平台上。
¨ InstallAnywhere是软件管理周期执行的第一步。 当与PowerUpdate连用时,Zero G会发布、更新解决方案,InstallAnywhere可以在任何平台上发布、安装、配置你的应用程序和软件升级程序。
3、EasySetup
EasySetup是一个简单的windows安装程序制作工具,它不仅能用来为应用创建安装程序,也可以为各种文件创建安装程序,比如word、Excel、PowerPoint、Acrobat或HTML文档。
主要特点如下:
¨ 支持32位的操作系统 Windows 95/98/2000/Me/XP/NT4
¨ 支持多语言但不支持多字节的语言,也就是说不支持中文。(不过我简单测试了一下,还是支持的)
¨ 可以对安装过程中的对话框中的内容进行修改
¨ 它制作的安装与卸载程序体积较小而且快
¨ 支持Exe安装文件的创建,也支持简单的在线发布
¨ 可以比较文件版本信息、替换正在使用的文件,注册DLL/OCX控件,安装字体
¨ 可以创建快捷方式
¨ 可以创建口令保护
4、小颖安装制作程序
这是国产的一款个人制作的软件,界面很简单,可以完成一些简单的但常用的功能。主要包括以下功能:
¨ 开发环境及运行环境只能是在windows上
¨ 支持简体中文、繁体中文、英文
¨ 可以设置安装程序的安装路径
¨ 可以更改图标及界面显示内容
¨ 可以在安装运行前运行别的程序
¨ 可以显示协议、注册信息等对话框
¨ 包含了程序附加组件(BDE、MDAC2.6、Microsoft SQL Server Client)
¨ 可以操作注册表、安装字体
¨ 可以制作卸载程序
结论及建议
综上所述,EasySetup与小颖安装程序都太过简单,不太适宜用于比较复杂的大型应用程序的安装。InstallShield功能强劲,但自定义的使用相对比较繁琐,必须重新学习并使用其自带的InstallScript脚本语言。而且,其一贯对跨平台的支持不是太令人满意,对Java的支持也是其较弱的部分。
InstallAnywhere由于其一贯的对跨平台支持良好,而且其本身是用Java开发的,对其进行扩展也是通过通用的JavaBean标准,学习起来也比较容易。所以,对于用Java应用来说,个人觉得使用InstallAnywhere来做安装程序更合适。
2009年2月27日星期五
2009年2月18日星期三
关于tomcat6+1.6服务无法启动的问题
关于tomcat6+1.6服务无法启动的问题:
安装为服务后,服务无法启动,据说只影响 Windows2003
过程:
在我本地安装,起动没有任何问题(windowsXP ,设置了 JAVA_HOME)
在同事的机器上安装,也没有问题(windowsXP ,未设置 JAVA_HOME)
客户现场安装,当时的机器是一台是 windows2003,一台是 XP,据说都没有正常启动
找了一台 windows2003 虚拟机, Enterprise sp1(R),安装无法启动,经多次测试,只需要在 service.bat 增加 JAVA_HOME 变量设置即可
另,发现 secfoxSNI的安装文件中的 service.bat 中,没有增加启动参数,应该增加,类似下面的代码最后的参数
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 512 --JvmMx 1024 --JvmSs 64
安装为服务后,服务无法启动,据说只影响 Windows2003
过程:
在我本地安装,起动没有任何问题(windowsXP ,设置了 JAVA_HOME)
在同事的机器上安装,也没有问题(windowsXP ,未设置 JAVA_HOME)
客户现场安装,当时的机器是一台是 windows2003,一台是 XP,据说都没有正常启动
找了一台 windows2003 虚拟机, Enterprise sp1(R),安装无法启动,经多次测试,只需要在 service.bat 增加 JAVA_HOME 变量设置即可
另,发现 secfoxSNI的安装文件中的 service.bat 中,没有增加启动参数,应该增加,类似下面的代码最后的参数
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 512 --JvmMx 1024 --JvmSs 64
订阅:
博文 (Atom)