【发布时间】:2011-11-05 13:42:55
【问题描述】:
我正在使用一个 Web 应用程序,Java 代码是使用 jdk 1.4 编译的,并且我使用 weblogic 8.1 作为我的应用程序服务器,它也使用 jdk 1.4,但是使用 jdk 1.5 编译的手指可数类文件很少。它类似于使用 jdk 1.4 和 1.5 编译的类文件的混合。现在,当我尝试访问需要按顺序执行使用 1.5 jdk 编译的类文件的应用程序部分时。它会抛出 ClassDefnNotFound 异常。
有什么建议吗??如果有的话,我还需要解释使用 jdk 1.4 和 jdk 1.5 编译的类文件之间的差异。
提前致谢
【问题讨论】:
-
Java 向后兼容,而不是向前兼容。因此,您可以在 1.5 jvm 上运行在 javac 1.4 上编译的代码,但反之则不行。要么升级用于执行代码的 jvm,要么降级 1.5 代码,取出 1.5 特性(如泛型)并使用 javac 1.4(或 1.5 中的 1.4 兼容性标志)编译它。
-
使用不同jdk的字节码或编译代码会有什么不同(例如:在这种情况下为1.4和1.5)。如果是这样,JVM 将如何识别它而不是在执行时解决它。
-
我相信class文件中有一个sas版本的头文件。是的,字节码有所不同 - 1.5 需要支持泛型和其他一些东西。
标签: java compiler-errors