1. 程式人生 > >Bad version number in .class file這個問題的解決方法

Bad version number in .class file這個問題的解決方法

發生問題的場景是這樣的,我使用的是MyEclipse6.6(版本比較老),自帶Servers tomcat

使用MyEclipse啟動tomcat後,報錯“java.lang.UnsupportedClassVersionError:Bad version number in .class file”。

解決方法是這樣的:

步驟1:確定當前使用的JDK版本

目前使用的JDK版本如何檢視呢?

到當前工程的屬性後,選擇"Java BuildPath"進去後JRE System Library


注意:MyEclipse6.6的JRE是5.0的,所以如果你看到你的MyEclipse的JDK只有MyEclipse6.6這個JRE環境,那麼需要再安裝JRE環境。

開啟InstalledJREs,重新Add一個JRE,指定一個JRE路徑,使用自己安裝的JDK 6.0,也就是JRE 6的環境進行編譯。

參考:myeclipse配置jdk

之後選擇我們新安裝的這個JDK環境。

步驟2:設定tomcat的JDK版本

windows->preferences->MyEclipseEnterprise Workbench->Servers->Tomcat->選擇一人版本的tomcat->JDK->修改成當前使用的JDK版本即可。


在MyEclipse中,我用的是jdk1.6.0_02開發的,因此把專案部署到tomcat中時,預設用的是專案的jdk1.6.0_02進行編譯java檔案,然後和專案一起釋出到tomcat裡面。但是如果tomcat伺服器的JDK版本與MyEclipse開發時使用的JDK版本不上下相容(tomcat在上),也會報這個錯誤

步驟3:修改編譯相容等級

進到當前工程的屬性後,選擇"JavaCompiler"進去後將"CompilerCompliance level"設定為6.0


MyEclipse 6.6的JRE是5.0的,如果沒有安裝JDK6.0,即使設定了Compiler compliance level為6.0,其實依然是再5.0的JRE下進行編譯的。 仍然會報錯。

報這個錯誤的原因

上面總結了這個錯誤的兩個原因:

一是MyEclipse使用的JDK版本和tomcat使用的版本不相容;

二是使用了MyEclipse自帶的太老的JRE。