【问题标题】:jdk 1.4, 1.5, 1.6 compiled code differencesjdk 1.4、1.5、1.6编译代码差异
【发布时间】: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


【解决方案1】:

看起来你需要retroweaver 来反向转换你的新代码,如果你真的在使用更新的功能。如果不是,请在编译所有内容时将 -target 设置为 1.4。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    相关资源
    最近更新 更多