【发布时间】:2011-06-23 07:42:06
【问题描述】:
我使用 Ant 编译 Java。该项目必须使用 JDK 1.5 编译,但是部分代码引用了使用 JDK 1.6 版本编译的包。 我将 JAVA_HOME 设置为 1.5 ,在此引用处抛出错误
[javac] 类文件的50.0版本错误,应该是49.0
不将参考版本降级到1.5有什么出路
【问题讨论】:
标签: java
我使用 Ant 编译 Java。该项目必须使用 JDK 1.5 编译,但是部分代码引用了使用 JDK 1.6 版本编译的包。 我将 JAVA_HOME 设置为 1.5 ,在此引用处抛出错误
[javac] 类文件的50.0版本错误,应该是49.0
不将参考版本降级到1.5有什么出路
【问题讨论】:
标签: java
你问的是不可能的。您应该使用 JDK 1.5 编译您的库。
【讨论】:
一旦在某个版本上编译了 Java,您就不能在旧版本的 Java 上使用该版本。
您正在使用的软件包可能有一个适用于旧版本 Java 的可用版本,或者您可以获取源代码并使用旧版本重新编译(如果它不使用任何 Java 6 库/ 功能)。
【讨论】:
这样想:
您使用的库是使用 JDK 6 编译的。它可能使用了 Java 6 中引入的一些功能(这些功能不属于 Java 以前版本的一部分)
当你使用 JDK 5 编译和运行时,你期望编译器(和运行时)在遇到这个“新”特性时会做什么? JDK 5 不知道这个特性,会被“迷惑”
为避免在运行时出现这种混淆,编译本身会失败。
你有两个选择:
如果您的项目使用 JDK 6 并且库是使用 JDK 5 编译的,那么由于向后兼容性,您就不会遇到这个问题。
【讨论】: