Ant javac目标和源属性之间的区别?

时间:2013-05-10 18:48:08

标签: ant javac

我安装了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规则,因此不会有任何资源尝试块”),target指定java -version-bytecode生成?文档似乎暗示source应始终设置,但第一个链接中的问题仅仅是为了指定target=1.6属性?

1 个答案:

答案 0 :(得分: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 抱歉重复相同的链接,但希望概念更清晰?