当前位置: 首页 > 工具软件 > IzPack > 使用案例 >

Java打包框架IzPack,搭建,配置,使用。

呼延珂
2023-12-01

1.安装IzPack。(此版本为IzPack4.3.5)

2.创建一个Java项目,从已安装的IzPack目录实例中,拷贝install.xml到项目根目录下。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<installation version="1.0">
	<info>
		<appname>Test</appname>// 项目安装时默认的文件夹名
		<appversion>beta1.2.0</appversion>
		<authors>
			<author name="test" email="wwcwolf@hotmail.com" />// 作者信息
		</authors>
		<url>http://www.test.com</url>
	</info>
	
	<guiprefs width="640" height="480" resizable="yes" />// 显示安装时窗口的大小
	
	<locale>// 语言设置                 
		<langpack iso3="chn" />              
		<langpack iso3="eng" /> 
	</locale>

	<resources>// 资源加载,在加载列表中添加的资源,必须存在。不然编译时报错
		<res id="LicencePanel.licence" src="Licence.txt" />// 条款文件
		<res id="InfoPanel.info" src="Readme.txt" />// 注意文件
		<res id="userInputSpec.xml" src="userInputSpec.xml" />// 自定义面板
		<res id="ProcessPanel.Spec.xml" src="ProcessPanel.Spec.xml" />// 进程面板
		<res id="shortcutSpec.xml" src="shortcutSpec.xml" />// 快捷方式面板
	</resources>

	<variables>// 变量定义
		<variable name="DesktopShortcutCheckboxEnabled" value="true" />// 桌面快捷方式变量
		<variable name="userDir" value="" />// 项目中使用的自定义变量,此项目中作用为获得安装前的路径(install.jar的路径)
	</variables>

	<native type="izpack" name="ShellLink.dll" />// 核心库
	<native type="izpack" name="ShellLink_x64.dll" />  

	<jar src="lib/install-utils.jar" />// 编写的代码类,编译成.jar文件,用于调用
	<jar src="lib/mysql-connector-java.jar" />// mysql数据库连接jar包
	<jar src="lib/classes12.jar" />// oracle数据库连接jar包
	<jar src="lib/ojdbc14-10.2.0.1.0.jar" />// oracle数据库连接jar包

	<panels>// 安装时,需要调用的面板。顺序调用
		<panel classname="HelloPanel" />// 欢迎面板 
		<panel classname="InfoPanel" />// 信息面板
		<panel classname="LicencePanel" />// 条款面板
		<panel classname="UserInputPanel" id="Check GrandDog">// 加密狗应用面板,使用自定义面板中,id=Check GrandDog面板
			<validator classname="abv.izpack.wolf.util.ProjectConditionManage" />// 调用这个类,此类已打包成jar文件install-utils.jar
		</panel>
		<panel classname="TargetPanel" />// 安装目录面板
		<panel classname="PacksPanel" />// 安装项目面板
		<panel classname="InstallPanel" />// 安装进度面板
		<panel classname="UserInputPanel" id="test">// 数据库验证面板,功能为:项目数据库连接资源修改,数据库导入
			<validator classname="abv.izpack.wolf.util.ProjectDatabasePropertyManage" />// 调用这个类,此类已打包成jar文件install-utils.jar
		</panel>
		<panel classname="ProcessPanel" />// 进程加载面板
		<panel classname="ShortcutPanel" />// 桌面快捷方式面板 
		<panel classname="FinishPanel" />// 完成面板
	</panels>

	<packs>// 需要安装的文件资源列表,注意此列表中出现的资源,必须存在。否则编译时报错
		<pack name="Base" required="yes">// name=安装项目面板中显示的名字,required="yes"为默认选中不得勾选
		<span style="white-space:pre">	</span><description>The base files</description>
		<file src="Readme.txt" targetdir="$INSTALL_PATH" />// src属性:原目标路径 targetdir属性:目标路径
			<file src="Licence.txt" targetdir="$INSTALL_PATH" />
			<file src="icon" targetdir="$INSTALL_PATH" />
			<file src="doc" targetdir="$INSTALL_PATH" />
			<file src="tools" targetdir="$INSTALL_PATH" />
			<file src="dmp" targetdir="D://" />
			<file src="startup.bat" targetdir="$INSTALL_PATH"  />
			<file src="script/copy_jdk.bat" targetdir="$INSTALL_PATH/script"  />
			<file src="script/install_tomcat.bat" targetdir="$INSTALL_PATH/script"  />
			<file src="script/start_services.bat" targetdir="$INSTALL_PATH/script"  />
			<file src="script/uninstall.bat" targetdir="$INSTALL_PATH/Uninstaller"  />
			<file src="script/uninstall.vbs" targetdir="$INSTALL_PATH/Uninstaller"  />
			<file src="commonRedist" targetdir="$INSTALL_PATH" />
			<parsable targetfile="$INSTALL_PATH/script/install_tomcat.bat" type="plain" /> // .bat文件中会调用一些框架默认变量,用此标签加载
			<parsable targetfile="$INSTALL_PATH/script/start_services.bat" type="plain" />
			<parsable targetfile="$INSTALL_PATH/script/copy_jdk.bat" type="plain" />
			<parsable targetfile="$INSTALL_PATH/Uninstaller/uninstall.vbs" type="plain" />
			<parsable targetfile="$INSTALL_PATH/Uninstaller/uninstall.vbs" type="plain" />
	</pack>
<span style="white-space:pre">	</span><pack name="biss+" required="yes">// 第二个需要安装的项目
		<description>The Biss+ files</description>
		<file src="project/test" targetdir="$INSTALL_PATH/commonRedist/tomcat/webapps/"/>
	</pack>	
	</packs>
</installation>


3.拷贝userInputSpec.xml到项目下,自定义面板,可以为多个。调用时调用panel id即可。

<?xml version="1.0" encoding="utf-8"?>  
<userInput>
    <panel id="Check GrandDog">  // 加密狗面板
        <field type="title" txt="Checking GrandDog" bold="true" size="1" />  
        <field type="divider" align="top" />  
        <field type="staticText" align="center" txt="Please Insert GrandDog" size="2" />  
    </panel>

    <panel id="test" >   // 
        <field type="title" txt="Biss+ Project Configuration" bold="true" size="1" />  
        <field type="divider" align="top" />  
        <field type="staticText" align="left" txt="Please input database username and password." />  
		<field type="text" variable="hostName">  // 输入框
            <spec txt="Host Name:" id="text.label" size="25" set="127.0.0.1" />   // 默认值
            <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="input hostname can not be empty!" />  // 内置验证方法
        </field>
        <field type="text" variable="dbName">  
            <spec txt="Database Name:" id="text.label" size="25" set="" />  
            <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="input database name can not be empty!" />  
        </field>
        <field type="text" variable="port">  
            <spec txt="Database Port:" id="text.label" size="25" set="1521" />  
            <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="input port can not be empty!" />  
        </field>
        <field type="text" variable="userName">  
            <spec txt="Database user:" id="text.label" size="25" set="" />  
            <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="input userName can not be empty!" />  
        </field>
        <field type="password" variable="password">  
            <spec>  
                <pwd txt="Database Password:" size="25" />  
            </spec> 
            <validator class="com.izforge.izpack.util.NotEmptyValidator" txt="input password can not be empty!" />  
        </field>
    </panel>  
</userInput> 

4.拷贝ProcessPanel.Spec.xml到项目下,自定义进程面板,可以调用.bat等文件,用来处理加载服务,数据库,等操作。

<?xml version="1.0" encoding="utf-8"?>
<processing>
	<job name="copy jdk">// 第一个工作
		<executeForPack name="Base" />
		<os family="windows" />    // windows下
		<executefile name="$INSTALL_PATH/script/copy_jdk.bat">// 要执行的.bat
			<arg>$userDir</arg>  // 自定义变量,在java类中赋值(赋值方法setVariable(key, value)),在.bat文件中以 %1调用
		</executefile>
	</job>
	<job name="install tomcat">// 第二个工作
		<executeForPack name="Base" />
		<os family="windows" />
		<executefile name="$INSTALL_PATH/script/install_tomcat.bat">
			<arg>$INSTALL_PATH</arg>// 内置的变量,在.bat文件中可以已 ${$INSTALL_PATH}调用
		</executefile>
	</job>
	<job name="install services">
		<executeForPack name="Base" />
		<os family="windows" />
		<executefile name="$INSTALL_PATH/script/start_services.bat" />
	</job>
</processing>

5.拷贝shortcutSpec.xml到项目下,自定桌面、开始菜单面板。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<shortcuts>
	<programGroup defaultName="test" location="applications||startMenu" />  
	
	<shortcut name="Test" target="$INSTALL_PATH\startup.bat"
		workingDirectory="$INSTALL_PATH" description="This Desktop Test"
		iconFile="$INSTALL_PATH\icon\Gallery.ico" iconIndex="0" initialState="noShow"
		programGroup="yes" desktop="yes" applications="no" startMenu="no"
		startup="no" /> 
<span style="white-space:pre">	</span>// target属性:桌面快捷方式调用的文件
        // iconFile属性:桌面快捷方式图标
	
	<shortcut name="Uninstall Test" target="$INSTALL_PATH\Uninstaller\uninstall.vbs"  
        workingDirectory="$INSTALL_PATH\Uninstaller" description="This uninstall Biss+" 
        iconFile="$INSTALL_PATH\icon\izpack.ico" iconIndex="0" initialState="noShow" 
        programGroup="yes" desktop="no" applications="no" startMenu="no"  
        startup="no"> 
    </shortcut>  
</shortcuts>

6.将要使用的Java类代码打包成.jar文件,MyEclipse可以完成。
<img src="https://img-blog.csdn.net/20140620152714609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3djd29sZg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
<img src="https://img-blog.csdn.net/20140620152728421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3djd29sZg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
<img src="https://img-blog.csdn.net/20140620152747328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3djd29sZg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

7.调用IzPack\bin\complie命令,编译项目:
C:\Izpack\bin\compile f:workspace\izpack\install.xml -b f:\

第一个为install.xml的路径,第二个为输出路径。最终会生成一个install.jar文件。使用他就可以开始安装了。

 
 


 类似资料: