1

我安装了 Java 6 和 7。如何指定ant 使用Java 6 编译?我已经看到了一些设置 java 6 编译器路径的线程,并且有效,但我也看到了像Setting the target version of Java in ant javac这样的线程,它在 javac 任务中设置了一个简单的属性。然后有时它会说指定目标和源。

我在这里阅读了http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#examples但仍然不明白这两个属性的用途。从 oracle 文档中,似乎source指定了语言规则(例如“这使用 java6 规则,所以不会有任何 try-with-resource 块”),并target指定要生成的 java-version-bytecode?文档似乎暗示source应该始终设置,但是为什么第一个链接中的问题只是说只是指定target=1.6属性?

4

1 回答 1

3

ANT 本身是一个 Java 程序,因此它使用 JAVA_HOME 环境变量来选择在运行时使用哪个 JVM。

一些 ANT 任务允许您选择不同的 Java 编译器或 JRE,覆盖默认选项。有关更多详细信息,请参阅 ANT 文档:

更新

我安装了 Java 6 和 7。如何指定ant 使用Java 6 编译?

javac任务控制兼容性设置的目标属性。他们不控制 ANT 使用哪个 JDK。

它们使现代 JDK 能够编译旧版本的 Java 编程语言和/或生成与旧版本的 Java 运行时兼容的字节码。

是标准选项的一部分,目标在 Oracle 的 javac 命令文档的交叉编译部分中有详细说明:

最后,Oracle 制作了以下关于 Java 兼容性的文档:

它指出 Java 6 和 Java 7 是高度兼容的,而在以前的 Java 版本中并非总是如此。

PS 抱歉重复相同的链接,但希望概念更清晰?

于 2013-05-11T12:35:34.483 回答