Java Izpack状态不工作

Java Izpack状态不工作,java,conditional-statements,izpack,Java,Conditional Statements,Izpack,我在install.xml中定义了以下条件 <conditions> <condition type="contains" id="which.java"> <variable>$SYSTEM_java_version</variable> <value>1.6</value> </condition> </conditions> $SYSTEM\u

我在install.xml中定义了以下条件

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

$SYSTEM\u java\u版本
1.6
我有这个文件,我只想在JRE版本为1.6时安装它

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

但它从未安装此文件

我做错了什么


提前感谢。

通常,您必须从变量名中删除“$”,如下所示:

<conditions>
    <condition type="contains" id="which.java">
        <variable>variable</variable>
        <value>1.6</value>
    </condition>
</conditions>
<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>

变量
1.6
在这种情况下,这可能不起作用,因为在这种情况下,没有使用系统前缀对变量进行特殊解析

如果要检查变量,必须首先将其映射到常规IzPack变量,如下所示:

<conditions>
    <condition type="contains" id="which.java">
        <variable>variable</variable>
        <value>1.6</value>
    </condition>
</conditions>
<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>

java.version
1.6
更简单的方法是使用常规IzPack变量解析器:

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

${SYSTEM\u java\u version}
1.6
您可以使用

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