使用Install Anywhere 让您的 Java 安装程序更高效和灵活

本文将介绍如何借助 Install Anywhere 更好地规划和设计 Java 安装程序,提供多平台多操作系统的部署,定义更灵活的安装流程和环境检查,开发更加友好和美观的用户交互界面。文章主要面向 Java 软件安装程序开发人员,假定您对 Java 以及 Ant 开发有基本的了解,您也可以参见参考资料以了解更多 Install Anywhere 相关的知识。

Install Anywhere 介绍

Install Anywhere 概述

Install Anywhere(以下简称 IA)是由 Flexera Software 公司推出的一款安装程序开发软件。它为安装应用程序的软件开发人员提供了一个迅速并且简单可靠的途径来为 Solaris、HP-UX、AIX、Linux、i5/OS、Mac OS X、Windows 等多种平台创建更专业的软件安装程序。

目前 Install Anywhere 有两个版本 (Standard/ 标准版和 Enterprise/ 企业版 )。其中标准版提供在多平台上安装软件的最基本功能,如果安装软件逻辑简单且不需要任何编码和定制,标准版是软件开发人员的最佳之选;而如果软件开发人员希望开发复杂的安装软件,自定义安装动作,或者定制安装软件的 GUI 等,那么企业版的强大功能支持则完全可以胜任。在本文中将以企业版为例介绍如何使用 IA 开发 Java 安装程序。

主要功能

支持多平台多语言安装

IA 支持 Solaris、HP-UX、AIX、Linux、i5/OS、Mac OS X、Windows 等多种平台的最新版本。IA 还会为安装程序创建一个可与相关平台兼容的 Java 虚拟机,安装程序将在这个 Java 虚拟机上运行。在整个安装程序的开发过程中,IA 能够处理所有的自动安装细节,动态地适应不同目标操作系统。同时,IA 支持软件开发人员开发多种形式的安装程序,包括桌面软件、企业软件、多层级 Web 服务、服务器端程序或客户端程序等等。

此外,企业版 IA 内置英语、法语、德语和日语四种语言包,提供全部的国际化支持,并且能够自动本地化 31 种不同的安装语言。

更灵活的用户交互功能

传统的安装程序往往通过 GUI 收集用户输入,而后在安装逻辑中对这些用户输入进行检查和校验,当输入参数不符合预期或者包含错误的时候,以出错信息的形式在安装日志中返回给用户。如果能够在运行安装逻辑之前就对用户输入进行预判和执行预装逻辑,将大大降低安装出错率和缩短安装时间。IA 为软件开发人员提供了对预装程序的定制化功能,开发人员可以通过定义预装逻辑对目标机器和用户输入进行预装检查,甚至基于用户的输入与用户进行更灵活的交互。

最佳开发体验和无限的定制化

IA 的 IDE 包含一个全图形化的设计界面,并且内置多种功能强大的控件,软件开发人员完全可以在不编写任何代码的情况下创建,维护和测试安装程序。同时,IA 还提供更多的插件以及 API 允许开发人员对安装程序进行定制化。开发人员可以自己设计安装程序的外观风格,自定义安装程序的用户界面,和使用符合他们公司以及品牌的图片或者动画等。

优势与特点

降低软件开发成本:多平台共用一个安装程序可以有效地缩短开发时间及优化开发资源,同时 IA 还封装了十几种内置的控件,预先创建好的行为和面板,帮助开发人员迅速直观地进行安装程序的创建和部署,节约了宝贵的开发成本。

降低质量保证和支持的成本:灵活的预装逻辑自定义帮助检测和最终减少终端用户的安装问题,从而降低技术支持的花费。同时文档的简化也节约了 QA 成本。

初探 IA

IA 试用版获取和安装

登陆 Flexera Software 主页 http://learn.flexerasoftware.com/content/IS-EVAL-InstallAnywhere-Enterprise,填写个人信息并点击 Get Your Free Trial 获得 InstallAnywhere 试用版。下载 IA 安装文件后点击 install.exe 运行安装程序并提供安装路径完成安装。

在本文的示例中,使用 IA2010 Enterprise SP1。

“Hello World”

当成功安装 IA 后,您将在您 IA 的安装路径下的 manual 文件夹下找到 StartHere.htm 文件,这是 IA 自带的帮助文档,使用浏览器将该文件打开,我们的 IA 之旅将从此处展开。

这一文档将快速向所有 IA 的初学者介绍如何通过导入 IA 自带的示例 Java 代码 OfficeSuite2000 从而利用 IA 基础向导生成基于 Java 的安装程序的全过程。请您参考阅读此文档 Install Anywhere Tutorials 这一章节中的 Building an Installer Using the Project Wizard 部分,它将从非常简单的 Java 示例代码入手,使您快速获得 IA 主要功能的初步了解。本文将在此基础上,在后续章节中深入介绍如何使用 IA 的高级视图 Advanced Designer 来开发您自己的定制化安装程序。

IA 印象

相信在阅读帮助文档中 Building an Installer Using the Project Wizard 的部分后,您已经能够成功创建了您的第一个 IA installer,那么我们来回顾一下它带给您的第一印象吧。

在默认情况下,每一个 IA installer 都会包括安装简介(Introduction),安装路径选择(Choose Install Folder),快捷方式路径选择(Choose Shortcut Folder),安装前预览(Pre-Installation Summary),安装(Install),和安装结果(Install Complete)几个安装流程。值得一提的是,安装路径选择的界面将包含所有和用户的交互信息,从产品解压目录,到客户环境检查;从收集用户信息,到变量检查及错误信息处理等等。而后,所有安装信息会在安装前预览界面展现给用户,用户确认后则进行安装,并可在安装结束后在安装结果界面查看安装状态。

开发您自己的 Java 安装程序

在上一章中,您一定已经了解了如何导入 IA 示例代码,以及如何使用 IA“傻瓜”式向导基于示例代码生成 Java 安装程序。那么在本章中,本文将详细介绍如何利用 IA,开发您自己的 Java 安装程序。

规划安装流程

在使用 IA 开发您自己的 Java 安装程序之前,请对您的安装程序做一下简单的规划,这些规划会帮助您更好的完成安装程序的开发。在规划中,请明确对以下几个问题的答案:

  1. 此安装程序需要支持哪些平台,Windows、Linux 或其他。
  2. 此安装程序需要哪些输入参数,以及这些参数中,哪些可以自动从目标机器上获取,哪些需要通过和用户交互获得。
  3. 需要进行哪些环境和安装条件检查。
  4. 此安装程序中需要具体执行的安装逻辑,以及要用到哪些安装介质。
  5. 安装流程设计,通常我们将需要与用户进行交互以及条件检查的步骤安排在 Pre-install 部分,而将具体的安装逻辑安排在 Install 部分。

创建 IA 工程

启动 IA,选择 Create New Project 并且在 Choose Template and Create Project 的列表中选择默认的 Basic Project Template,点击 Save as 完成保存。在接下来弹出的 Save New Project As 对话框中,选择保存当前工程的位置,为工程源文件命名。所有工程的源文件都以 .iap_xml 为后缀名,且默认文件名为 My_Product.iap_xml。IA 工程一旦被创建,开发人员可以在工程目录下找到新创建的工程。

使用 Advanced Designer 开发安装程序

如果待开发的安装程序不涉及到任何编码,只是将已有的 Java 程序打包,那么开发人员完全可以遵循本文初探 IA 一章中的步骤通过 IA 向导以图形化的方式生成安装程序,这种简单快捷的开发方式的确是 IA 的一大亮点。另一方面,如果开发人员希望为待开发的安装程序添加更多功能,那么可以使用 IA 提供的 Advanced Designer。

要使用 Advanced Designer,只需要双击 IA 工程中的 iap_xml 文件,点击 Advanced Desinger 按钮即可进入 Advanced Desinger 编辑页面。在图 1 中的左侧,我们可以看到 Advanced Designer 提供了如下几种视图,分别为 Project、Installer UI、Organization、Pre-Install、Install、Post-Install、Pre-Uninstall、Uninstall、Post-Uninstall 和 Build。

图 1. Advanced Designer 编辑页面

图 1. Advanced Designer 编辑页面

其中各个视图及其描述信息如表 1 所示:

表 1. IA 视图及功能描述
视图名称 功能描述
Project 当前工程相关的基本设置,包括工程名称,文件路径等
Installer UI 安装程序外观设置,包括背景图片设置等
Organization 安装程序的安装集 Install Set,以及每个 Install Set 中的安装内容
Pre-Install 预安装程序
Install 安装程序
Post-Install 安装后程序
Pre-Uninstall 预卸载程序
Uninstall 卸载程序
Post-Uninstall 卸载后程序
Build Build 相关设置,包括选择 build 的目标操作系统,绑定 Java 虚拟机等

 

本章将会通过一个简单的示例详细介绍 Organization、Pre-install、Install 这三个最常用的视图及其他使用 IA 开发 Java 安装程序的主要事项。

定义 Install Set

Install Set 是指用户在安装软件时选择的安装集合。在实际安装中,用户可以通过选择不同的安装集合来实现不同的安装内容。

Organization 视图中的 Install Sets 面板提供了定义安装集合的功能。默认情况下,IA 中预定义了两个 Install Set:Typical 和 Minimal。 用户可通过 Add Install Set 或者 Remove 按钮添加或删除 Install Set。

完成了 Install Set 的定义后,用户可在 Features 面板中定义每个 Install Set 所包含的产品模块,每个模块对应 IA 中的一个 Feature。开发人员可以通过 Add Product Feature 和 Remove 按钮添加和删除它们。在图 2 的示例中,我们为 Typical Install Set 分别添加了 Configure Database、Deploy Application 和 Help 三个 Feature,而在 Minimal Install Set 中,只包含最少个数的 Feature 集合 (Configure Database 和 Deploy Application),而不包含 Help。

图 2. 定义产品 Feature

图 2. 定义产品 Feature

通过这种设置,如果用户在安装时选择 Typical 安装,安装程序将会为用户配置数据库,部署应用以及提供帮助文档;如果用户选择的是 Minimal 安装,那么安装程序将只为用户配置数据库和部署应用,不提供帮助文档。

了解 Action

在 Advanced Designer 中,IA 为安装程序开发人员提供了多种不同类型的内置控件,并将许多通用的操作作为模板封装在这些控件中,我们把这些内置控件称为 Action,正是这些内置的 Action 大大简化了开发人员的开发过程。

每个 Action 包含三个可编辑属性:Properties、Rules,和 Tags。此处我们着重介绍前面两类:

Properties 部分包含了当前 Action 的业务逻辑:要定义哪些变量,运行哪些命令或者代码,抑或拷贝哪些文件等等,都需要在 Properties 中声明。

Rules 中则定义了触发当前 Action 执行的先决条件,类似于代码中的条件判断语句,当条件不满足时,当前 Action 不会被执行。

Tags 属性使得开发人员能够为他们自己的 Action 打上自定义的标签,便于在构建安装程序时进行管理。Tags 属性并不常用,本文将不展开详细介绍。

开发预装程序

定义了 Install Set 和 Feature 后,就可以开始开发预装程序了。在 Pre-Install 视图中,开发人员可以通过添加 Action 来定义预装逻辑。

开发人员可以根据业务需求,添加预装程序,当然,IA 也为基于 Java 和 Ant 的预装程序提供了很好的支持。

在这一部分,本文着重向您介绍 IA 给安装程序带来的灵活和便利。

定义 Panels

当开发人员点击 Add Action 按钮后,就会看到图 3 所示的标题为 Choose an action 的面板。该面板中包括了 General,Panels,Consoles,System i 和 Plug-Ins 五个选项卡。

图 3. 添加 Action

图 3. 添加 Action

选择 Panels,开发人员可以看到 IA 支持的所有不同类型的 Panel。通过这些 Panel,开发人员不但可以以 GUI 的方式收集用户输入,同时也能根据产品风格定制化安装界面。

以 Panel:Get User Input Panel – Simple 为例,当开发人在上图中选择并添加了 Get User Input – Simple Panel 后,便会进入图 4 中的编辑区域:

图 4. 添加获取用户输入的 Panel

图 4. 添加获取用户输入的 Panel

我们已经提到过,IA 中的每个 Action 都包含 Properties\Rules 和 Tags 三个属性,Get User Input Panel 也不例外:Properties 部分包含了当前面板的总体外观设计和业务逻辑:开发人员可以为面板定义标题(Title),提示信息(Prompt)和 Input Items。

定义 Variables

IA 语法规定:所有内置变量名必须以 $ 符作为起始和结束,类似于 $ 变量名 $。变量一经定义,可在整个 installer 的代码范围内通过 $ 变量名 $ 进行引用。

定义 IA 变量的过程很简单,点击 Add Action,在 General 选项卡中选择 Set InstallAnywhere Variable — Single Variable 或者 Set InstallAnywhere Variable — Multiple Variables,上述两种的区别是一次性可以定义的变量个数不同。图 5 中以 Single Variable 为例,定义了名为 Variable_1 且值为“Hello World”的变量。

图 5. 添加 Variable

图 5. 添加 Variable

环境和安装条件检查

为了一定程度上避免和减少软件安装过程中的错误,环境和安装前检查是必不可少的。开发人员可以通过自定义 Java 代码或者其他类型的脚本对当前目标环境的状态进行检测,比较常见的检测包括操作系统、磁盘空间、注册表、安装目录是否存在等等。安装条件检查机制使得 IA 安装程序能够与用户进行更灵活的交互,安装程序可以依照严重程度将检查结果通过 Alert Message 或者终止安装的方式通知用户,直到等待用户将当前目标环境更新到符合条件为止。

下面本文将以如何检查 WAS 配置,包括 WAS 安装路径,安全登陆信息为示例,简单介绍如何使用 IA 预装程序对环境和安装条件进行检查。

假设开发人员要开发一个能够将应用程序部署到 WAS Application Server 上的安装程序,那么在这个安装程序的部署逻辑执行之前,需要进行如下安装条件检查:

  1. 目标机器上是否已经成功安装了 WAS Application Server
  2. 当前 WAS Application Server 是否已经 enable security
  3. 如果没有 enable security,则检查完成并返回成功;如果已经 enable security,则提示用户输入 WAS Credential (Username 和 Password) 信息,并且检查该 Credential 信息的正确性,直到验证通过为止。

对于 Step 1,首先通过 Add Action 添加一个 Choose Folder Panel,并通过该 Panel 从用户处得到 WAS Application Server 的安装路径。

Choose Folder Panel 和前文提到的 Get User Input Panel 的功能类似,都是从用户处得到输入,不同的是 Choose Folder Panel 限定得到的输入必须是文件路径,并且支持用户通过 Browse 的方式在本地选择任何目录作为输入路径。

而后,在该 Panel 的 properties 选项卡上指定标题和 Panel 的描述和提示信息。Default Folder 是当前 Panel 展示给用户时的默认路径,可以由用户修改。在本文的例子中,我们指定了 Program Files 路径作为默认路径。此时,用户提供的 WAS Application Server 安装路径被保存到 IA 变量 WAS_HOME 中,如图 6 所示。

图 6. Choose Folder 面板属性

图 6. Choose Folder 面板属性

接下来,Installer 要来验证这个安装路径是否有效。验证方法有很多种,这里我们选择调用 $WAS_HOME$\bin\versionInfo.bat 命令来查看当前 WAS 的版本信息,如果版本信息存在,则间接验证安装路径有效。

为了调用上述命令,我们向 IA 中添加一个 Execute Command Action,并通过该 Action 调用上述命令,调用的结果包括 stdout、stderr 以及 exit code 都可以通过 IA 变量的形式获得,便于后续检查命令的执行结果,如图 7 所示。

图 7. Execute Command Action 属性

图 7. Execute Command Action 属性

之后检查调用结果,如果检查失败,证明用户指定的 WAS 安装路径是错误的,程序通过 Show Message Dialog 将失败信息返回给用户,并要求他重新指定,直到正确位置,如图 8 所示。

图 8. Show Message Dialog 属性

图 8. Show Message Dialog 属性

在 Show Message Dialog 的 Rules 属性中,添加执行条件:“$EXECUTE_EXITCODE_WAS$ contains 1”,该条件表示如果之前的命令执行结果返回值为 1 时,installer 将会向用户显示当前 Show Message Dialog。反之,当前 Dialog 不会显示。

验证了 Step 1 中的 WAS Application 中的安装路径之后,接下来就是检查 Step 2 中 WAS Application Server 是否已经 enable security。

我们知道,在 WAS 尚未 enable security 时,调用“serverStatus.bat -all”命令可以获得当前所有 Server 的状态信息;但是如果 WAS 已经 enable security 后,再调用“serverStatus.bat -all”命令而不加入任何认证信息时就会出错,且抛出 ADMN0022E 异常信息。所以,在本文的示例代码中,我们选择调用 $WAS_HOME$\bin\serverStatus.bat -all 并且获得返回结果的方式来验证,如图 9 所示。

图 9. 添加 Execute Command Action 获得 WAS 服务器状态

图 9. 添加 Execute Command Action 获得 WAS 服务器状态

如果上述调用命令后的返回结果中包括 Message ID 为 ADMN0022E 的异常信息,则说明已经 enable security,此时 installer 要进一步提示用户输入 WAS Credential (Username 和 Password) 信息。

Installer 从用户处得到了 WAS Username 和 Password 后,需要进一步验证其正确性。我们还是选择调用 serverStatus.bat 并代入上述 Username 和 Password,最后检查调用结果的方式来完成验证,原理与检查是否 enable security 的逻辑一致,此处不再赘述。

到此为止,我们就完成了本节开始时列举的 Step1-Step3 的所有安装条件检查。不难发现,IA 的预装程序为开发人员提供了较为灵活的检验和用户交互,而这种灵活的交互能力往往是传统的 Java 程序所不能达到的。

添加 Java 自定义代码

此外,开发人员不仅仅可以调用简单的命令,同时也可以调用自定义的 Java 类。

如果您需要在 IA 安装程序中多次执行 Java 代码,首先必须将待调用的 Java 程序打成 Jar 包,并将该 Jar 包与其它依赖文件一并通过 Execute Custom Code Action 导入到 IA 安装程序中。

然后,您还须为 IA 安装程序指定要当前 Java 代码的 classpath。IA 安装程序会自动在您指定的类中搜索 Java Main() 函数并自动执行。如图 10 所示。如果您的 Java 代码中包含对其他 Jar 包的引用,需要在 Dependencies 中指出。

图 10. 配置 Execute Java Custom Code Action 属性

图 10. 配置 Execute Java Custom Code Action 属性

除此以外,IA 还支持开发人员通过 Java Custom Code Panel 在安装程序中使用自定义的 Java Panel。与 Java 代码调用不同的是,自定义的 Java Panel 类必须继承自 com.zerog.ia.api.pub.CustomCodePanel 并且必须实现 public boolean setupUI(CustoCodePanelProxy) 方法,参见下面的 HostPanel 类:

 import com.zerog.ia.api.pub.CustomCodePanel; 
 import com.zerog.ia.api.pub.CustomCodePanelProxy; 
 /* Import your own classes here */ 
public class HostsPanel extends CustomCodePanel { 

 private CustomCodePanelProxy installProxy; 
		
 /** 
	 * Class constructor 
	 */ 
 public HostsPanel(){ 

 /* Add your business logic here */ 
			
	 } 	

 @Override 
 public boolean setupUI(CustomCodePanelProxy arg0) { 

 installProxy = arg0; 

 /* Add your business logic here */ 

 return  true ; 
	 }

开发 Java/ANT 安装程序

在定义了预装程序之后,开发人员就可以在在 Install 视图中定义自己的安装逻辑了。不论是执行独立的 Java 类,还是 Ant,IA 都提供了非常好的支持。

导入安装介质

与预装程序有所区别,Install 部分所有要执行的 Java Class 文件都要作为安装介质预先导入到 IA 中,IA 安装程序在运行时会先解压安装介质到目标机器,而后按照开发人员定义的安装逻辑依次执行。开发人员也可以通过的 Add Files 和 Remove 按钮添加或删除文件到安装介质中。所有 User Install Folder 中的文件都将作为安装介质在 installer 运行时拷贝到目标机器上的 $USER_INSTALL_DIR$ 路径下。

如果您要在安装过程中执行 Java 代码,那么首先需要将待执行的 Java 工程导入到 User Install Folder($USER_INSTALL_DIR$)中。(当然,对于开发预装程序一小节中最后的 Java 代码示例,由于它是在预装程序中执行,所以不需要将改工程导入)。图 11 中为导入了名为 SampleJava 的 Java 工程的示例:

图 11. 导入 SampleJava 工程

图 11. 导入 SampleJava 工程

在导入 Java 代码后,开发人员还需要为该 Java 工程指定 classpath。任何基于 Java 的 IA 安装程序在 build 阶段都会被自动打包成为 .jar 文件,安装程序在运行时是通过调用该 Jar 文件中的 main 函数来运行的。因此,在打包安装程序之前,需要将这些 Jar 指定为 classpath,,开发人员可以点击 Set Classpath 按钮,IA 则会在后台自动计算需要被打包到 Jar 文件中的文件,并且以蓝色的 CP 图标标记这些路径,如图 12 所示,Java 工程 SampleJava 将会作为独立的 jar 文件添加到当前 IA 安装程序的 Classpath 中。

图 12. 设置类路径

图 12. 设置类路径

如果您要在安装过程中执行 Ant 代码,那么待执行的脚本文件同样到导入到 User Install Folder 中。如图 13 所示,我们已将 Ant 执行过程中需要的 build xml 文件、properties 文件以及可能涉及到的其他脚本都导入到 IA 中。

图 13. 导入 Ant 脚本

图 13. 导入 Ant 脚本

执行安装操作

开发人员可以编辑 Install 视图,通过在 User Install Folder 中添加和编辑 Action 的方式来定义自己的安装逻辑。Install 阶段定义 Action 的方式与编辑 Pre-Install 视图的方式类似,本文不再过多详述。

下面以调用 Ant 代码部署 WAS 应用为例,简单说明如何在 Install 视图中定义安装操作。IA 提供了内置的 Ant 脚本执行 Action,开发人员可以直接添加 Execute ANT Script,该 Action 也可在 Choose an Action 的 General 选项卡中找到。

添加 Execute ANT Script 之后,在 Properties 选项卡上会出现如图 14 所示配置信息:

图 14. 配置 Execute ANT Script Action 属性

图 14. 配置 Execute ANT Script Action 属性

在 ANT Build Script 一栏中,开发人员可以通过两种方式指定 Ant 运行时需要的 build XML 文件。一种是 Specify Build Script:这种方式需要开发人员通过 Choose File 在当前 User Install Folder 中选择已导入的文件作为 build 文件;另一种是 Use Existing Installed Script:这种方式是开发人员指定目标机器上已存在的文件作为 build 文件。本文示例代码中将选择第一种方式。

此外,开发人员还可以在 Specify Build Properties 一栏中,指定运行 Ant build 文件时的 properties 文件路径。另外,开发人员还可以勾选中 Substitute IA Variables in Build Properties。顾名思义,选中该选项框意味着在 Ant 调用时,IA 会自动将指定的 build properties 文件中使用 $ 变量名 $ 方式引用的 IA 变量替换成实际值。

在 Ant Target 一栏中,开发人员可以自由选择使用 Ant 文件中的默认 target,还是使用特定的 target。

最后,在 Dependencies list 中,IA 自动为开发人员添加了 Ant binary。但是值得注意的是,截止到目前,即便是最新版本的 IA 2011,仍然使用了 Ant 1.7 作为默认的 Ant 版本。如果开发人员希望使用更高版本的 Ant,那么请手动替换 Dependencies list 中的 jar 文件。

使用上图中的 GUI 模式运行 ANT 脚本,其效果和直接运行 ANT 命令:

 ant.exe -f  E:\workspace\test\IA_Resources_FP\build\build.xml 
 -propertyfile E:\workspace\test\IA_Resources_FP\properties\default.properties Deploy_App

是一致的。

构建安装程序

IA 提供了 Build 视图为开发人员提供了构建 installer 的配置。在此处开发人员可以选择 IA 安装程序需要支持的平台,包括 Windows、Linux,、Mac OS 等,同时开发人员还可以选择是否要在安装程序中嵌入 Java 虚拟机。对于基于 Java 语言和 Ant 语言的安装程序,嵌入 Java 虚拟机是必须的。

在图 15 中展示了 Build 视图中 Build Target 选项卡的信息。在示例代码中,我们选择了 Windows 作为构建当前 installer 的目标操作系统,同时,由于当前 installer 是基于 Ant 的,所以我们选择嵌入 Java 虚拟机。在 VM to Bundle with Installer 下拉菜单中,开发人员可以选择嵌入的 Java 虚拟机的版本。示例中的版本为 Sun JRE 1.6.0_15 15i18n Win32。

图 15. 构建项目

图 15. 构建项目

点击图 15 中左下方的 Build Project 按钮,开始构建 installer。Build 完成后,将在当前工程目录下生成名为 <your project name>_Build_Output 的文件夹。您可以在 <your project name>_Build_Output\Default_Configuration\ 下找到生成的 install.exe 并运行它测试您的安装程序,当然也可以直接在 Build 窗口上点击 Try it 按钮运行该 installer。

如果开发人员想要定制自己的 installer distribution 信息,那么则需要在 Distribution 选项卡中做相关配置,在本文的示例代码中,我们选择了 CD-ROM installer 作为构建的 installer 的最终形式,当然,您也可以选中 Build Web Installer 来构建基于 Web 浏览器的 installer。

总结

本文分别从产品特点、主要功能和具体使用几个方面介绍了一款 Java 安装程序开发利器 Install Anywhere,帮助 Java 开发人员更高效和灵活的开发安装程序。Install Anywhere 最大的优势在于它的多平台支持,除此以外,它完善和灵活的安装程序框架以及强大丰富的内置控件也能够帮助 Java 安装程序开发人员有效减少软件开发和维护的时间成本,提高软件质量。

声明:本文仅代表作者个人之观点,不代表 IBM 公司之观点。

下载

描述 名字 大小
示例代码 SampleJavaInstaller.zip 48KB

标签