为什么java 1.4编译器不抱怨用1.5编译器编译的第三方库?

时间:2010-05-07 15:00:56

标签: javac

为什么java 1.4编译器不会抱怨用1.5编译器编译的第三方库?运行时遇到问题UnsupportedClassVersionError。

1 个答案:

答案 0 :(得分:0)

从Java 1.5开始,类文件格式略有改变(例如,保留注释)。请参阅the compiler docs中的-target选项。 Java 1.5及更高版本的JVM支持两种类文件格式; Java 1.4 VM(当然)仅支持早期格式。

至于为什么编译器不抱怨:编译器只需关心它是否有足够的信息来正确编译它被要求编译的文件;而不是它是否可以正确运行它们。 JVM需要担心正确运行类。显然,如果您看到1.4编译器在其编译的代码中愉快地引用1.5类,则格式更改不会影响编译器编译1.4样式代码所需的信息。我无法立即找到保证该行为的参考,但如果这是您所看到的......