我安装了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
属性?
答案 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 强> 抱歉重复相同的链接,但希望概念更清晰?