日期:2014-05-20  浏览次数:20758 次

高分求 IZPACK 打包程序教程
RT 高分求 IZPACK 打包程序 教程, 包括如何自定义pannel, 全部pannel 自定义的。。。

------解决方案--------------------
您好 楼主 给你一个事例, 用SVN 把这个项目 check 下来, 看一下 就明白了 SVN 地址http://svn.codehaus.org/izpack-svn/izpack-maven/trunk/izpack-maven-plugin/src/it/sample/

Condition应用与panel控制
IzPack打包工具是通过一个个的panel控制去实现的,在这里我们可以根据安装过程的选择控制panel的选择。如:
  <panel classname="UserInputPanel" id="trailPanel" condition="licenseType.trail"/>
  <panel classname="UserInputPanel" id="formalPanel" condition="licenseType.formal"/>
当condition="licenseType.trail"时显示 trailPanel,当condition="licenseType.formal"时显示formalPanel.
在这里必须在<conditions></conditions>标签下定义上面的condition.
<!-- define condition -->
 <conditions>
<condition id="licenseType.trail" type="variable">
<name>licenseType</name>
<value>trail</value>
</condition>
<condition id="licenseType.formal" type="variable">
<name>licenseType</name>
<value>formal</value>
</condition>
</conditions>
同时定义使用的变量
<!-- define variables -->
 <variables>
<variable name="licenseType" value=""/>
</variables>
Processpanel介绍
IzPack允许用户在安装完成后执行自己的文件或.class对系统进行配置。在这里只要在InstallPanel之后使用ProcessPanel即可。例如:
......
<panel classname="InstallPanel"/>
<panel classname="ProcessPanel"/>
<panel classname="ShortcutPanel"/> 
.....
同时需要在resources标签下引用指定的资源文件。
......
<res id="ProcessPanel.Spec.xml" src="ProcessPanel.Spec.xml"/>
<res id="shortcutSpec.xml" src="EasyTrack_ShortcutSpec.xml" /> 
......
在自己ProcessPanel.Spec.xml写编写自己需要的执行的job。
IzPack允许用户执行自己的.class,只需在java文件中包含public void run( AbstractUIProcessHandler handler, String[] args)方法即可。
Jar、native
安装程序在安装过程中可能会需要其它的Java包来完成一些工作,例如,你在自定义向导窗口中做了用户输入的数据库连接有效性检查,如果是通过创建 JDBC连接来做的话,就需要JDBC driver的jar,那么就需要通过<jar />来加入这些jar包。例如:
  <!--**安装程序所需要的其它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应用的话,例如:安装程序界面中通过Java JNI访问机器硬件的话,就需要JNI的动态库加入到安装程序中。例如:
  <!--**安装程序所需要的Native文件**-->
   <native type="izpack" name="ShellLink.dll" /> 
resources
  用于为安装界面指定图片或图标
  用于指定用户自定义安装向导窗口定义XML文件的位置
  用于指定安装向导窗口中国际化资源XML文件的位置
  等等,例如:
  <!--**安装界面资源定义**-->
  <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" /> 
  <!--**快捷键定义描述**-->