JDK编译器版本问题

时间:2011-06-23 07:42:06

标签: java

我正在使用Ant来编译Java。项目必须使用JDK 1.5进行编译,但是代码的某些部分引用了使用JDK 1.6版本编译的包。 我将JAVA_HOME设置为1.5,在此引用处抛出错误

[javac]类文件有错误的版本50.0,应该是49.0

没有将参考版本降级为1.5

的方法是什么

3 个答案:

答案 0 :(得分:4)

你问的是不可能的。您应该使用JDK 1.5编译库。

答案 1 :(得分:1)

在某个版本上编译Java之后,就无法在旧版本的Java上使用该版本。

您正在使用的软件包可能有适用于旧版Java的版本,或者您可以获取源代码并使用旧版本重新编译(如果它不使用任何Java 6库) / features)。

答案 2 :(得分:0)

这样想:

您使用的库已使用JDK 6编译。它可能正在使用Java 6中引入的一些功能(不是以前版本的Java的一部分)

当您使用JDK 5进行编译和运行时,如果遇到这个“新”功能,您希望编译器(和运行时)做什么? JDK 5不知道这个功能,并且会“混淆”

为了避免在运行时出现这种混淆,编译本身就失败了。

您有两种选择:

  • 使用JDK 6编译项目。
  • 获取库的JDK 5编译版本

如果您的项目使用的是JDK 6并且库是使用JDK 5编译的,那么由于向后兼容性,您不会遇到此问题。