如何更改 Ant 任务中的 Java JDK 版本?

新手上路,请多包涵

我需要编译我的源代码以与 JRE 1.6 兼容。但是,当我尝试将 javac 任务的编译器属性设置为 javac1.6 时,Ant 仍会使用 javac1.7 编译我的代码。我还尝试将编译器版本设置为“现代”,但没有用。

 <target name="compile-tests">
    <javac compiler="javac1.6" includeantruntime="false" srcdir="${test.dir}" destdir="${build.dir}" >
        <classpath refid="class.path" />
    </javac>
</target>

我的 JAVA_HOME 设置为 JDK 1.6:

 echo $JAVA_HOME
/usr/lib/jvm/java-6-openjdk-amd64/

我的蚂蚁版本是: Apache Ant(TM) version 1.8.2

根据 这篇文章,Ant 使用自己的编译器。我如何覆盖 Ant 默认值?

此外,根据 这篇文章 和 Ant 文档,我可以设置全局 build.compiler 属性。我应该将该属性设置为什么,我该怎么做?

原文由 user847352 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

我认为 Ant compiler 属性只是为了知道编译器支持哪些属性。在 javac 通常传递给编译器的属性或选项是 target

您甚至不需要安装 Java 6 编译器。

原文由 madth3 发布,翻译遵循 CC BY-SA 3.0 许可协议

javac 任务中,尝试通过设置 executable 属性来指定 Java 编译器,如下所示:

 <property name="JDK1.6.dir" location="/usr/lib/jvm/java-6-openjdk-amd64" />
<property name="javac1.6" location="${JDK1.6.dir}/bin/javac" />

<target name="compile-tests">
  <javac executable="${javac1.6}"
      fork="yes"
      includeantruntime="false"
      srcdir="${test.dir}"
      destdir="${build.dir}" >
    <classpath refid="class.path" />
  </javac>
</target>

原文由 Christopher Peisert 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题