Ant使用的Java版本低于系统的Java版本

这种行为让我很奇怪。 以下是发生的事情:

  1. 我们有一个Ant的build.xml文件,它说
  2. 我们已将系统(Linux)上的Java更新为1.6,但我们忘记更新Ant build.xml文件。
  3. ant建设正在成功发生,它是如何发生的? 是不是更高版本的Java可以降级到更低版本? 或者如果Ant找不到指定的Java版本,它会使用默认版本吗?

在这种情况下升级JDK不会有任何问题

  

意味着它告诉Java编译器源是使用Java 1.5编写的,它应该创建适合Java SE 1.5环境的目标构建。这对于较新的JDK来说确实是可能的。这与以下内容完全相同:

 javac -source 1.5 -target 1.5 

请参阅javac工具的文档

希望这可以帮助

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

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