IzPack,一款java开源打包工具。由于工作的需要,鉴于英语水平,花了近一个星期的研究,总算把工作任务给顶了下来。在此做些必要的笔记,以便自己以后查阅。IzPack的详细使用,在自身的文档里已说得很清楚,这里就写写自己曾迷惑许久的东西。
1.First Compilation ----编译
D:\IzPack\EasyTrack Install>../bin/compile install.xml -b . -o install.jar -k standard
首先把IzPack安装到本地后,新建自己的安装xml文件,完成运行下cmd,进入命令提示框,用命令进入自己的install.xml所在目录后,执行上面的命令对其进行编译。注意编译路径为相对路径,指向IzPack bin目录。
2.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>
3.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)方法即可。
4.自定义自己的Validator
只需自己的java文件实现Validator接口即可,例如:
public class CheckPortConflict implements Validator{
public boolean validate(ProcessingClient client) {
boolean result = true;
int port = 0;
......
......
......
return result;
}
}
5.用户语言
用户在自定义自己的panel时需要对panel说明是,可引用<res id="userInputLang.xml_chn" src="userInputLang.xml_chn" /> ,编写自己的userInputLang.xml_chn文件。这里后缀名是.xml_chn对应语言类型。而非.xml文件,至于原因我也不知道,只是自己在用时,.xml文件不认。
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/java/javajs/20090304/157615.html
1.First Compilation ----编译
D:\IzPack\EasyTrack Install>../bin/compile install.xml -b . -o install.jar -k standard
首先把IzPack安装到本地后,新建自己的安装xml文件,完成运行下cmd,进入命令提示框,用命令进入自己的install.xml所在目录后,执行上面的命令对其进行编译。注意编译路径为相对路径,指向IzPack bin目录。
2.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>
3.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)方法即可。
4.自定义自己的Validator
只需自己的java文件实现Validator接口即可,例如:
public class CheckPortConflict implements Validator{
public boolean validate(ProcessingClient client) {
boolean result = true;
int port = 0;
......
......
......
return result;
}
}
5.用户语言
用户在自定义自己的panel时需要对panel说明是,可引用<res id="userInputLang.xml_chn" src="userInputLang.xml_chn" /> ,编写自己的userInputLang.xml_chn文件。这里后缀名是.xml_chn对应语言类型。而非.xml文件,至于原因我也不知道,只是自己在用时,.xml文件不认。
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/java/javajs/20090304/157615.html