如何在Java 10及更高版本的ant中跳过Javah任务?

时间:2019-05-06 23:02:29

标签: java ant javah

我的build.xml中有一个javah任务。 javah任务不再适用于Java 10及更高版本,因此我在nativeHeaderDir任务中添加了javac,并且工作正常。但是,我仍然想保留javah任务,以便相同的build.xml适用于较旧的Java。

仅在Java 10及更高版本上运行时,如何才能使ant跳过javah任务?更一般而言,是否有任何方法可以根据Java版本在build.xml中切换执行路径?或者,还有其他标准方法可以将javah任务从旧Java迁移到Java 10/11并保持向后兼容吗?

1 个答案:

答案 0 :(得分:1)

使用Ant 1.10.2或更高版本支持的<javaversion>条件。

Ant mailing list

Ant的最新版本(从1.10.2开始)具有“ javaversion” 您可以用来设置“属性”的条件,然后可以 与目标上的“ if” /“除非”属性一起使用。 这是一个示例:

<target name="the-one-which-has-javah-task" depends="check-java-version"
unless="java10+">
    ...
</target>   

<target name="check-java-version">
    <condition property="java10+">
      <javaversion atleast="10"/>
    </condition>
</target>