Ant使用比系统Java版本更低版本的Java

时间:2014-01-17 06:24:42

标签: java ant

这种行为看起来很奇怪。以下是发生的事情:

  1. 我们有Ant的build.xml文件,其中显示<javac source="1.5" target="1.5"></javac>
  2. 我们已将系统(Linux)上的Java更新为1.6,但我们忘记更新Ant build.xml文件。
  3. 蚂蚁建筑成功发生,怎么回事?是否可以将较高版本的Java降级为较低版本?或者,如果Ant无法找到指定的Java版本,则使用默认版本?

3 个答案:

答案 0 :(得分:1)

这些选项被传递给Java编译器。它可以为较旧的JVM(目标)生成字节代码,并且还可以接受为较旧的Java版本(源)编写的源代码。例如,当新的Java版本引入新的关键字但您在源中使用该词作为标识符时,这就是有意义的。

答案 1 :(得分:1)

在此方案中升级JDK不会有任何问题

<javac source="1.5" target="1.5"></javac>

意味着它告诉Java编译器源是使用Java 1.5编写的,它应该创建适合Java SE 1.5环境的目标构建。这对于更新的JDK来说确实是可能的。这与

完全相同。
javac -source 1.5 -target 1.5

请参阅javac工具

的文档

希望这有帮助

答案 2 :(得分:0)

它将生成JDK 1.5的字节代码而不是JDK 1.6,因为Java支持向后兼容性,因此JDK 1.5的字节代码可以在JDK 1.6 JRE上轻松运行。