我正在尝试使用IzPack创建一个安装程序。我试图在安装之前执行批处理文件。
INSTALL.XML
<izpack:installation version="5.0"
xmlns:izpack="http://izpack.org/schema/installation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://izpack.org/schema/installation http://izpack.org/schema/5.0/izpack-installation-5.0.xsd">
<guiprefs width="640" height="480" resizable="yes"/>
<variables>
<variable name="DesktopShortcutCheckboxEnabled" value="true"/>
</variables>
<locale>
<langpack iso3="eng"/>
</locale>
<resources>
<res id="ProcessPanel.Spec.xml" src="ProcessPanel.Spec.xml"/>
<res id="shortcutSpec.xml" src="shortcutSpec.xml"/>
<res id="LicencePanel.licence" src="License.txt"/>
<res id="InfoPanel.info" src="Readme.txt"/>
</resources>
<panels>
<panel classname="HelloPanel"/>
<panel classname="ProcessPanel"/>
<panel classname="LicencePanel"/>
<panel classname="TargetPanel"/>
<panel classname="PacksPanel"/>
<panel classname="InstallPanel"/>
<panel classname="ShortcutPanel"/>
<panel classname="FinishPanel"/>
</panels>
<packs>
<pack name="Base" required="yes">
<description>The base files</description>
<file src="Readme.txt" targetdir="$INSTALL_PATH"/>
<file src="License.txt" targetdir="$INSTALL_PATH"/>
<file src="phone.ico" targetdir="$INSTALL_PATH"/>
<fileset dir="lib" targetdir="$INSTALL_PATH\lib">
<include name="**"/>
</fileset>
</pack>
</packs>
<native type="izpack" name="ShellLink.dll"/>
<native type="3rdparty" name="COIOSHelper.dll" stage="both">
<os family="windows"/>
</native>
</izpack:installation>
ProcessPanel.Spec.xml
<?xml version="1.0" encoding="UTF-8" ?>
<processing>
<job name="doxyz">
<os family="windows" />
<executefile name="$INSTALL_PATH/scripts/mytest.bat">
<arg>doit</arg><arg>$variable</arg>
</executefile>
</job>
<onFail previous="true" next="false" />
<onSuccess previous="false" next="true" />
</processing>
在编译时,我没有收到任何错误!但是当我执行install.jar并且当我打开ProcessPanel时,我收到以下错误:
我使用了:
的IzPack-DIST-5.0.6
生成安装程序,我的java版本是:
java版&#34; 1.8.0_66&#34; Java(TM)SE运行时环境
(build 1.8.0_66-b18)Java HotSpot(TM)64位服务器VM(版本25.66-b18,混合模式)
答案 0 :(得分:1)
我会称之为预期的行为。
找不到文件$INSTALL_PATH/scripts/mytest.bat
,因为由于面板的激活顺序,它可能不会预先安装。 ProcessPanel 显示在 InstallPanel,之前,但 InstallPanel 是安装该文件的那个。编译器没有抱怨这种问题,你必须自己关心它们。它或多或少是安装程序描述引入的逻辑问题,而不是IzPack。