Java異常.UnsupportedClassVersionError

1.錯誤原因

        java.lang.UnsupportedClassVersionError 產生原因爲使用高版本的JDK編譯的Java class文件試圖運行在較低版本的JVM上運行所報錯誤。高版本JDK生成的class文件使用的格式,可能與低版本JDK生成.class文件格式不同,因此低版本JVM無法解釋執行此.class文件,便拋出java.lang.UnsupportedClassVersionError不支持的Class版本錯誤。該錯誤尤其在JDK5與JDK5之前的版本上表現明顯,因爲JDK5在Java語法上作了不少增強,引入了一些新的.class文件的元素,導致舊版本的JVM無法解釋、執行.class文件。即使這個類並沒有使用任何JDK5的新元素,但JDK5生成的.class文件,JDK1.4及其以前的JVM都無法辨認!

2.解決方法

(1)直接換JDK

         比如,Eclipse或MyEclipse IDE工具,進入首選項---Java---編譯器,可看到默認的編譯器的等級,這裏改爲JVM對應的版本即可。

(2)Retroweaver 處理

開放源代碼的 Retroweaver 項目, 使用 classworking 技術來修改由 JDK 5.0 編譯器生成的二進制類表示,以便這些類可以與早期的 JVM 一起使用。通過修改JDK5生成的.class文件,將其變爲JVM1.4及之前版本能夠運行的.class文件。目前,使用新版本的IDE編輯器可能會造成你遭遇java.lang.UnsupportedClassVersionError 錯誤。

(3)MyEclipse中Tomcat此類問題

在MyEclipse----應用服務器下,指定Tomcat使用的JDK版本,這樣就全部指定使用設定的JDK來編譯和運行程序了。注意,絕對不能夠使用低版本編譯程序,而又在低版本上運行程序,那將會拋出java.lang.UnsupportedClassVersionError不支持的Class版本錯誤。不論是Eclipse生成的war包,還是ant文件生成war包,都使用低版本編譯器編譯,就會在運行時出現錯誤,該應用程序將無法啓動。查看Tomcat的日誌文件,會看到java.lang.UnsupportedClassVersionError錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章