5

我正在尝试使用 Java 9 编译我的 java 项目。我正在使用 java.xml.bind 包,所以我需要使用 -addmods 选项进行编译。Ant 1.9.7 似乎不支持这个新特性。ant 是否支持 Java 9 编译器的 -addmods 选项?

4

2 回答 2

5

目前任何已发布的 Ant 版本都没有明确的支持。但是你应该可以使用<jvmarg>

<java ....>
    <jvmarg value="--add-modules"/>
    <jvmarg value="module.name.to.add"/>
    <jvmarg ..../>
</java>

如果你问的是<javac>而不是<java><compilerarg>可以用代替。

Java 9 设法破坏 Ant 的方法有很多种——而 1.9.8 和 1.10.x 将包含很多针对它的修复(一旦最后的已知问题得到解决,很快就会有新版本)。不过,目前还没有明确支持--add-modules,只有在 Ant 1.9.7 中添加了modulepath和。upgrademodulepath

恕我直言 - 虽然会是一个很好的增强请求。

于 2016-09-03T11:12:25.300 回答
-1

至少使用 Ant 1.10.1 并在 build.xml 中执行以下操作:

<condition property="java9">
  <equals arg1="${ant.java.version}" arg2="9"/>
</condition>

<java classname="....." fork="true">
  <classpath>
    <pathelement location="...."/>
  </classpath>
  <jvmarg value="--add-modules" if:set="java9" />
  <jvmarg value="java.xml.bind" if:set="java9" />
  ...
</java>
于 2017-10-23T12:44:14.347 回答