2011-11-05 88 views
1

我使用的是一个web应用程序,java代码是使用jdk 1.4编译的,我使用weblogic 8.1作为我的应用程序服务器,它也使用jdk 1.4,但有几个可指数类文件使用jdk 1.5编译。它的东西就像混合使用jdk 1.4编译的类文件1.5 & 1.5。现在,当我尝试访问需要使用1.5 jdk编译的类文件按顺序执行的应用程序部分时。它会抛出ClassDefnNotFound异常。jdk 1.4,1.5,1.6编译代码差异

任何建议。我还需要解释使用jdk 1.4和jdk 1.5编译的类文件之间的差异,如果有的话。

在此先感谢

+2

Java向后兼容,不兼容。因此,您可以在1.5 jvm上运行在javac 1.4上编译的代码,但不能以其他方式运行。无论是升级用于执行代码的jvm,还是降级1.5代码,取出1.5特性(如泛型)并使用javac 1.4(或1.4中的1.4兼容性标志)进行编译。 –

+0

使用不同的jdk(例如:在这种情况下是1.4和1.5),在编码或编译代码中是否会有所不同?如果是这样,JVM如何识别它,而不是在执行时解决它。 – Pradyumna

+0

我相信在类文件中有一个标题是sas版本。是的,在字节码方面有所不同 - 1.5需要支持泛型和其他一些东西。 –

回答

3

看起来你需要retroweaver到后台转换您的新密码,如果你真的使用新特性。如果不是,编译所有内容时将-target设置为1.4。