2013-09-26 110 views
0

我在我的install.xml中定義了以下條件。Izpack條件不起作用

<conditions> 
    <condition type="contains" id="which.java"> 
     <variable>$SYSTEM_java_version</variable> 
     <value>1.6</value> 
    </condition> 
</conditions> 

而我有這個文件,我只想安裝如果JRE版本是1.6。

<file src="Releases/Other/Instalador/JCEUnlimitedCrypto/JRE6/local_policy.jar" targetdir="$INSTALL_PATH" condition="which.java"/> 

但它從不安裝此文件。

我在做什麼錯?

在此先感謝。

回答

1

共通之處,你必須從變量名切斷「$」,就像這樣:

<conditions> 
    <condition type="contains" id="which.java"> 
     <variable>variable</variable> 
     <value>1.6</value> 
    </condition> 
</conditions> 

在這種情況下,這將很可能無法正常工作,因爲這種情況下,不這樣做帶有SYSTEM_前綴的變量的特殊分辨率。

如果你要檢查它在一個變量,你有這個第一映射到一個普通的IzPack變量,就像這樣:

<variables> 
    <variable name="java.version" value="${SYSTEM_java_version}"/> 
</variables> 

<conditions> 
    <condition type="contains" id="which.java"> 
     <variable>java.version</variable> 
     <value>1.6</value> 
    </condition> 
</conditions> 

一種更簡單的做法是這樣的一個,它採用常規的IzPack變量解析器:

<conditions> 
    <condition type="contains" id="which.java"> 
     <string>${SYSTEM_java_version}</string> 
     <value>1.6</value> 
    </condition> 
</conditions> 
0

您可以使用

<condition type="compareversions" id="isValidJavaVersion"> 
    <arg1>${previous.wrapper.java.version}</arg1> 
    <arg2>1.6</arg2> 
    <operator>lt</operator> 
</condition> 

您也可以參考此鏈接here