Unsupported major.minor version (jdk版本錯誤)解決方案

一、錯誤現象:

當改變了jdk版本時,在編譯java時,會遇到Unsupported major.minor version錯誤。
錯誤信息如下 :

Unsupported major.minor version 50.0
Unsupported major.minor version 49.0 (我在jdk1.4 和1.5切換時就遇到了這個錯誤)
Unsupported major.minor version 48.0

二、錯誤原因:

類似錯誤均屬於Java版本問題,即JDK版本過低,只要選擇相對應的JDK版本編譯即可。
48,49,50是Java編譯器內部的版本號:

Unsupported major.minor version 52.0 對應於 JDK1.8(JRE1.8)

Unsupported major.minor version 51.0 對應於 JDK1.7(JRE1.7)

Unsupported major.minor version 50.0 對應於 JDK1.6(JRE1.6)
Unsupported major.minor version 49.0 對應於 JDK1.5(JRE1.5)
Unsupported major.minor version 48.0 對應於 JDK1.4(JRE1.4)

三、出錯過程:

我先描述一下我出錯的過程,這樣方便大家解決問題。

我用的是eclipse,在windows下調試的,是從jkd1.4升級到1.5後出現了該錯誤。
我是這麼升級到1.5的:
(1)把在系統環境變量中把jdk的版本升級到了1.5,並在命令提示符下用 java -version 顯示了一下jdk版本,是1.5的。
(2)在eclipse中 Window -> Preferences -> Java -> Compiler 然後在右側窗口中,有個 Compiler compiance level: 就是指定jdk的版本,原來是1.4 ,現在選擇5.0也就是jdk1.5。確定時彈出個對話框,提示改變了jdk版本,是否要立刻重新編譯。點yes。eclipse會重新編譯。【 圖 1 】


(3)Project -> Properties -> Java Compiler 右側窗口也有個 Compiler compiance level: 原來是1.4把它也改成5.0的。也會彈出對話框,同樣選yes。【 圖 2 】


(4)寫了個Test類,執行是出現了錯誤:
java.lang.UnsupportedClassVersionError: 
(Unsupported major.minor version 49.0)

(5)我重啓eclipse問題依舊

至此,出錯過程描述完畢。

四、解決辦法:

僅僅按照網上說的設置JAVA_HOME 等方案是不能解決問題的。

下面是我的解決辦法:
既然環境變量中和eclipse中都設置了jdk1.5的版本,爲何還報錯呢。
肯定是哪個地方還有設置。

(1)Project -> Properties ->Java Build Path 右側窗口 -> Libraries 在列表裏顯示的竟然還是jdk1.4(是myEclipse5自帶的。) 。
(2)將jdk1.4相關條目選中,然後點右側按鈕 Remove ,將jdk1.4刪除。【 圖 3 】


(3)點右側 Add Library 彈出對話框,選中jdk1.5的條目,我這裏顯示的是 JRE System Library 然後點擊next。 【 圖 4 】


(4) 在第三步彈出的對話框上,激活 Alternate JRE 選項,並在下拉列表中,選擇 jdk1.5 然後點Finish。【 圖 5 】


(5)在第四步完成後,從Libraries 選項卡切換到 Order and Export 選項卡,並在jar列表中選中 JRE System Library[jdk1.5] 然後 點 ok完成設置。【 圖 6 】


(6)如果你的Eclipse設置成了自動編譯,應該就可以了,否則重新編譯一下。


五、總結

根本原因還是開發環境中 jdk 環境變量的設置。
其實在我解決的過程中還有個細節給我帶來了麻煩——就是我用了MyEclipse插件,它自帶個jdk1.4 所以如果你也安裝了myEclipse插件,最好別用myEclipse的jdk(它帶很多額外包,調試過程沒問題,結果發佈後會有少jar包的可能),要用自己安裝的。

我遇到的問題我解決了,不知你解決了沒有。

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