0

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

<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"/>

但它从不安装此文件。

我究竟做错了什么?

提前致谢。

4

2 回答 2

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>
于 2014-02-12T18:27:32.440 回答
0

您可以使用

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

你也可以在这里参考这个链接

于 2015-10-08T19:48:05.553 回答