2011-11-05 93 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。