java - 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>

我有这个文件,我只想在 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>

在这种情况下,这可能不起作用,因为对于这种情况,没有对带有 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>

关于java - izpack 条件不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037420/

相关文章:

java - Android 中的嵌套 ArrayList

java - Genson 可以处理对象上的通用嵌套字段吗?

python - 如何改变系列中int元素的值

java - 带条件的 IllegalMonitorStateException

java - 将 Java 中获取的 TGT 用于 SSH/其他应用程序

Java:用一个队列实现堆栈,有什么问题吗?

php - 检查 "is not null"或空字符串的 PHP 语法是什么?

java - 如何创建我自己的跨平台安装程序?

maven - izpack-maven-plugin 默认情况下不包含 native 库

java - 如何在 izpack-maven-plugin install.xml 中使用 Maven 项目属性?