发布时间:2025-12-10 19:36:44 浏览次数:11
java web安装教程_不是产品的有效安装程序 目录:一.背景 二.开源工具 三.环境准备 四.技术准备 4.1.Jsmooth 4.1.1.Jsmooth简介 4.1.2.工作原理 4.2.IzPack 4.2.1.IzPack简介
目录: 一.背景 二.开源工具 三.环境准备 四.技术准备 4.1. Jsmooth 4.1.1. Jsmooth简介 4.1.2.工作原理 4.2. IzPack 4.2.1.IzPack简介 4.2.2.工作原理 五.方案实例 六.结束 一. 背景: 随着Java在应用产品开发中的广泛应用,基于Java的应用产品也就越来越多,那么如何为基于Java的应用产品制作安装程序的需求就产生了。以前人们一般都是使用InstallShield与InstallAnyWhere进行产品安装程序的制作,这是两个功能非常强大、易用的安装盘制作工具,尤其是InstallAnyWhere,它还支持Java应用产品安装制作,例如:大名鼎鼎的Jbuilder安装程序就是由它制作的。 本文并不准备对这些商业的安装制作工具进行讨论,本文将就如何利用开源的安装制作工具来进行Java Web应用产品程序制作进行一些探讨。 二. 开源工具: 目前用于支持Java应用安装程序制作的开源工具非常丰富,本人将要本人在研究过程中所遇到的罗列一二以供参考:| Packlet Packlet 是一个简单的 Java 安装制作工具。它将 Java Application 打包成一个可以发布的类似于 zip 或 tgz 的压缩文件中。这个压缩文件被简为 packlet ,它可以在安装有 Java 2 Runtime Environment 的操作系统上执行 . 通过执行 packlet 将会给用户提供一个图形化的安装配置界面并解压应用。 Go To Packlet |
| IzPack IzPack 是一个用于 Java 平台的安装程序生成器。它用于产生一个轻量级、能运行于所有安装了 JVM 的任何的操作系统的安装程序。生成的安装程序可以通过双击或在 Command Line 通过 java –jar install.jar 命令进行启动,安装程序运行的方式具体将看操作系统的支持方式。 IzPack 的主要好处就是能够生成运行于任意操作系统的安装程序。 Go To IzPack |
| JSmooth Jsmooth 可以将 Java 可执行应用 Wrapper 成 window 可执行 Exe 程序。通过 Jsmooth 生成的 Exe 程序会自动按制作时定义的顺序寻找合适的 JVM ,如果能不查找到 JVM ,安装程序会提示用户并能根据定义好的 URL 启动 Web Browser 让用户下载 JVM. 注意: Jsmooth 并不是纯 Java 应用。 Go To JSmooth |
| VAInstall VAInsall 是一个用 Java 写的多平台安装程序工具。它是基于 GNU GPL2.0 许可。通过一个简单的配置文件,它允许安装程序打包工具由不同的目录下收集程序包,这与一般情况下安装程序制作工具只能由一个根目录开始相比更为灵活。由 VAInstall 生成的安装程序允许先择不同的安装模式 (graphic,text 或 ansi) 。 Go To VAInstall |
| Java Service Wrapper 用于将 Java Application 安装成为 Window NT Service. 同时与之附带的 scripts 能够很容易将 Java Application 安装成为 UNIX 的后台进程。 Go To Java Service Wrapper |
| Lift Off Java Installer Lift Off Java Installer 的最大特色就是:自解压 class 文件,对目标系统要求低以及跨平台性。 Go To Lift Off Java Installer |
| Toolshed 一个小巧、简单、纯 Java 实现的安装程序制作工作。 Go To Toolshed |
| Launch4J Lauch4J 也是一个 Java 应用 Window Exe 封装工具。通过 Lauch4J ,可以提供 splash screen, 图标,自动查询 JRE 或内置 JRE 等功能,同时还支持启动失败反馈以及命令行参数。 Go To Launch4J |
| AntInstaller AntInstaller 是一个安装程序框架,它利用一个简单的 XML 定义安装界面,并以 Ant 执行安装过程。基于 AntInstaller 的安装程序可以打包成自解压 jar 通过 command line 执行可 Swing GUI 来执行。 Go To AntInstaller |
| Antigen Antigen—- 即 Ant Installer Generator 。它主要的目的就是根据 Ant 脚本创建图形化安装程序。 Go To Antigen |
| FreeInstaller FreeInstaller 是一个开源项目,完全用 Java 编写。它将应用程序打包成一个自解压的 Java 应用。通过 FreeInstaller 可以将 Java 或非 Java 的应用安装到 UNIX,LINUX 以及 window NT 系统中。 Go To FreeInstaller |
| Mini Installer 一个简单的 Java 安装程序制作工具。整个制作过程是通过脚本完成的,最终生成一个可以通过双击方式执行的 jar 文件。 Go To Mini Installer |
然后,通过jsmoothgen任务来执行生成Exe的工作: <jsmoothgen project=”path/to/yourproject.jsmooth” skeletonroot=”${jsmooth_home}/skeletons”/> 所以通过Jsmooth我们可以很容易将Java Application制作Windows Exe应用。 关于Jsmooth的详细介绍请参考<taskdef name=”jsmoothgen” classname=”net.charabia.jsmoothgen.ant.JSmoothGen” classpath=”${jsmooth_home}/lib/jsmoothgen-ant.jar”/>
安装定义文件: 安装过程定义文件是一个XML文件,installation是根元素,表示定义的开始。定义主要由如下几部分组成: 1.<info>….</info> 用于定义安装程序的基本信息;第一步:创建并描述安装定义文件; 第二步:通过izpack提供CommandLine工具或Ant Task对安装定义文件进行编译,编译的结果即是生成一个可执行的jar文件,其中包括了整个安装过程的实现以及安装数据;
| <info> <appname>产品中文名称</appname> <appversion>产品版本号,例如:1.0-062312</appversion> <url>公司网址</url> <javaversion>JDK版本号:1.4.2</javaversion> </info> |
2
| <!–**安装界面配置信息**–> <guiprefs resizable=”no” height=”480″ width=”600″> <modifier key=”langDisplayType” value=”native” /> </guiprefs> |
3.<variables>……..</variables> 定义变量或配置信息,变量在整个安装制作的过程中非常重要,变量两种用途:其一:作为配置用,例如可以通过按照一定的命名称规则为某个变量设定一个值,izpack在执行安装过程中将会读取某个变量的值来决定某个安装向导窗口是否可见等;例如:我们可以通过定义compareToVariable.<index>、compareToOperator.<index>与compareToValue.<index>的组合决定第<index>个用户自定义的向导窗口在安装时是否可见,这样就可以通过上个窗口用户选择来决定下个窗口是否可见;其二:作为替换变量用,通常安装过程中收集的信息存放在变量中,然后,在安装程序进行到最后,利用变量的值来替换安装目标文件中的内容。
| <variables> <!–**显示快捷键创建窗口标识**–> <variable name=”DesktopShortcutCheckboxEnabled” value=”true” /> <!–**设定部分变量的缺省值**–> <variable name=”SERVER_TYPE” value=”tomcat” /> <variable name=”SERVER_PATH” value=”” /> <!–**TOMCAT PORT输入窗口(index=1)判定**–> <variable name=”compareToVariable.1″ value=”INSTALL_TYPE” /> <variable name=”compareToOperator.1″ value=”=” /> <variable name=”compareToValue.1″ value=”new” /> </variable> |
| <!–**安装界面语言定义**–> <locale> <langpack iso3=”chn” /> <langpack iso3=”eng” /> </locale> |
| <!–** 安装界面资源定义 **–> < resources > <!–**XX 安装语言选择窗口图片 **–> < res src = “langsel.jpg” id = “installer.langsel.img” /> <!–**XX 安装说明文件 **–> < res src = “readme.html” id = “HTMLInfoPanel.info” parse = “yes” type = “plain” encoding = “GB2312” /> < res src = “readme_chn.html” id = “HTMLInfoPanel.info_chn” parse = “yes” type = “plain” encoding = “GB2312” /> <!–**XX 产品版本说明文件 **–> < res src = “license.html” id = “HTMLLicencePanel.licence” parse = “yes” type = “plain” encoding = “GB2312” /> < res src = “license_chn.html” id = “HTMLLicencePanel.licence_chn” parse = “yes” type = “plain” encoding = “GB2312” /> <!–** 快捷键定义描述 **–> < res src = “shortcutSpec.xml” id = “shortcutSpec.xml” parse = “yes” type = “xml” encoding = “GB2312” /> < res src = “Unix_shortcutSpec.xml” id = “Unix_shortcutSpec.xml” parse = “yes” type = “xml” encoding = “GB2312” /> <!–**Pack Lang**–> < res src = “packsLang.xml” id = “packsLang.xml” /> < res src = “packsLang_chn.xml” id = “packsLang.xml_chn” /> <!–** 自定义窗口定义描述 **–> < res src = “UserInputSpec.xml” id = “userInputSpec.xml” /> < res src = “UserInputLang.xml” id = “userInputLang.xml” /> < res src = “UserInputLang_chn.xml” id = “userInputLang.xml_chn” /> </ resources > |
6.<panels> ……. </panels> 本部分用于定义整个安装过程,每个panel即是一个安装向导窗口,panel是按顺序由IzPack调用的。IzPack内置了很多的Panel,另外它还支持用户自定义的功能,主要是通过UserInputPanel来实现的,你可以通过在<resources>……</resources>中定义的ID为UserInputSpec.xml的资源(XML)中定义UserInputPanel窗口中用户录入项目及相关存放的变量。另外,Izpack支持条件用户自定义Panel,即ConditionalUserInputPanel,你可以在<variables>….</variables>中通过变量来控制这样的向导窗口的可见性。当安装过程执行到InstallPanel时IzPack开始解压安装包到硬盘中,所以,一般来说所有的配置信息(例如,安装目录,安装包的选择等)都应在InstallPanel之前完成。在InstallPanel之后可以通过ShortcutPanel来显示快捷方式创建窗口,另外还可以通过ProcessPanel来执行一些后续操作。
| <!–** 安装界面定义 **–> < panels > <!–** 显示公司版权信息 **–> < panel classname = “HTMLLicencePanel” /> <!–** 显示 ReadMe 信息 **–> < panel classname = “HTMLInfoPanel” /> <!–** 选择安装目标 **–> < panel classname = “TargetPanel” /> <!–** 选择安装内容 **–> < panel classname = “PacksPanel” /> <!–**INSTALL_PATH**–> <!–** 选择安装类型 : 安装到已有应用服务器中 安装 TOMCAT 作为应用服务器 .**–> < panel classname = “UserInputPanel” /> <!–**INSTALL_TYPE:new|old**–> <!–** 显示用户安装输入配置 **–> < panel classname = “SummaryPanel” /> <!–** 开始安装 **–> < panel classname = “InstallPanel” /> <!–** 显示快捷键创建窗口 **–> < panel classname = “ShortcutPanel” /> <!–** 显示安装完成窗口 **–> < panel classname = “SimpleFinishPanel” /> </ panels > |
7. <packs> ……. </packs> 本部分主要用于定义安装包,即将哪些文件进行打包,以及将来安装时如何进行安装。通过<pack>可以将应用程序文件分解成不同的安装包,可以指定哪些pack是必须安装的,哪些是可选的。 前边我们讲过,我们可以在<panels>中加入自定义向导窗口来允许用户指定一些配置,这些配置信息被存放到变量中,我们可以利用用户指定的值来替换应用程序中部分文件中的内容。那么在定义pack时,就可以指定哪些文件在安装时需要进行解析(parseable)。需要注意的,你需要指定需要解析的方式(xml, javaprop, plain,shell),如查将javaprop类型的文件解析类型设定为plain的话,可以就有问题,例如:如果变量的值为路径,那么在可能就会有问题。 另,对于每一个Pack在它安装(copy文件)之后,可以定义它执行一个程序,例如脚本程序。你可以利用这种功能来做一些工作,例如:你可执行脚本程序来导入数据库数据等。 下面是一个示例:
| <!–** 安装包的定义 **–> < packs > <!–** 安装及运行辅助工具包 .**–> < pack id = “ToolKit” name = “ToolKit” required = “yes” > ………… </ pack > <!–** 核心安装包 **–> < pack id = “Core” name = “Core” required = “yes” > < description > 在 packsLang.xml 和 packsLang.xml_chn 中描述了 . </ description > < fileset dir = “app” targetdir = “$INSTALL_PATH/app” > < include name = “*” /> < include name = “**” /> </ fileset > < fileset dir = “native” targetdir = “$INSTALL_PATH/native” > < include name = “*” /> < include name = “**” /> </ fileset > < file src = “clear.db.splash.gif” targetdir = “$INSTALL_PATH” /> < file src = “init.db.splash.gif” targetdir = “$INSTALL_PATH” /> < file src = “installer.properties” targetdir = “$INSTALL_PATH” /> < file src = “installer.xml” targetdir = “$INSTALL_PATH” /> < file src = “installer.bat” targetdir = “$INSTALL_PATH” /> < file src = “uninstaller.bat” targetdir = “$INSTALL_PATH” /> < parsable targetfile = “$INSTALL_PATH/installer.properties” type = “javaprop” /> < parsable targetfile = “$INSTALL_PATH/installer.bat” type = “plain” /> < parsable targetfile = “$INSTALL_PATH/uninstaller.bat” type = “plain” /> < executable targetfile = “$INSTALL_PATH/installer.bat” stage = “postinstall” keep = “false” failure = “abort” > < os family = “windows” /> </ executable > < executable targetfile = “$INSTALL_PATH/uninstaller.bat” stage = “uninstall” keep = “true” failure = “abort” > < os family = “windows” /> </ executable > </ pack > </ packs > |
| <!–** 安装程序所需要的其它 Jar 文件夹 **–> < jar src = “dbdrivers/mssqlserver.jar” stage = “both” /> < jar src = “dbdrivers/msutil.jar” stage = “both” /> < jar src = “dbdrivers/msbase.jar” stage = “both” /> < jar src = “dbdrivers/ojdbc14.jar” stage = “both” /> < jar src = “dbdrivers/orai18n.jar” stage = “both” /> |
| <!–** 安装程序所需要的 Native 文件 **–> < native type = “izpack” name = “ShellLink.dll” /> |
通过如上任何一种方式都可以生成安装程序――――一个可执行的jar文件。 所以通过IzPack我们可以很容易将制作应用安装程序。 关于IzPack的详细介绍请参考<izpack
input=
“${
安装定义
XML
文件
}”
output=
“${installer.jar}”
basedir=
“${
上面准备好的目录根目录
}”
izPackDir=
“${izpack
安装目录
}”
installerType=
“standard”
compression=
“bzip2” compressionlevel=
“9”
/>