为什么 java 1.4 编译器不抱怨用 1.5 编译器编译的第三方库?在运行时遇到问题 UnsupportedClassVersionError 。
1 回答
0
从 Java 1.5 开始,类文件格式略有改变(例如,保留注释)。请参阅编译器文档-target
中的选项。Java 1.5 和更高版本的 JVM 支持这两种类文件格式;Java 1.4 VM(自然)只支持早期的格式。
至于为什么编译器不抱怨:编译器只需要关心它是否有足够的信息来正确编译它被要求编译的文件;不是它是否可以正确运行它们。JVM 需要担心正确运行类。显然,如果您看到 1.4 编译器在其正在编译的代码中愉快地引用 1.5 类,则格式更改不会影响编译器编译 1.4 样式代码所需的信息。我无法立即找到保证该行为的参考,但如果这是您所看到的......
于 2010-05-07T15:05:21.823 回答