2011-08-30 92 views
78

Possible Duplicate:
unsupported major .minor version 51.0異常線程「main」 java.lang.UnsupportedClassVersionError錯誤:一個(不支持MAJOR.MINOR版本51.0)

我安裝JDK7,一個簡單的Hello Word程序獲取編譯但是當我運行此我得到了以下異常。

Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) 
    at java.lang.ClassLoader.defineClass0(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 

我查了命令提示符java -version,它顯示了Java版本1.4.2_03但是當我試圖從java.com安裝新的Java版本是說,我有推薦的Java 7版本。

+1

請注意,您可以使用javac的「-target」選項編譯早期的Java運行時。 –

+1

不是重複的 - 這個問題是JDK7存在,只是在JDK1.4.2的路徑後面。 –

+1

對於MacOSX,我的機器上有以下工作。 出口JAVA_HOME =/Library/Java/JavaVirtualMachines /jdk1.7.0_71.jdk/Contents/Home/jre –

回答

33

將PATH設置的內容複製到記事本中,並檢查1.4.2的位置是否在7的位置之前。如果是這樣,請刪除PATH設置中1.4.2的路徑並保存。

保存並應用「環境變量」後關閉並重新打開cmd行。在XP中,路徑不會反映在已經運行的程序中。

+0

是的我在路徑上有一個入口,路徑爲「H:\ sw \ general \ oracle10g \ jre \ 1.4.2 \ bin」。我應該刪除這個,並且我應該使用這個修改後的路徑在系統變量部分更改PATH變量嗎? – Adnan

+0

是的。刪除對「H:\ sw \ ... \ 1.4.2 \ bin;」的引用從PATH下的系統變量部分。應用更改,然後關閉現有命令行並重新打開它。 – arunmur

+1

:感謝v v v你的寶貴時間,它現在工作正常。 – Adnan

2

聽起來像您需要更改路徑到您的java可執行文件以匹配最新版本。 基本上,安裝最新的Java並不一定意味着你的機器被配置爲使用最新版本。你沒有提到任何平臺的細節,這就是我所能說的。

+0

感謝您寶貴的時間。我怎麼能改變我的Java可執行的路徑?我正在使用Windows XP。 – Adnan

+1

請參見:http://www.java.com/en/download/help/path.xml您可能能夠驗證當前路徑指向的位置並將其更改爲正確。修改PATH變量時要非常小心。你可以認真搞砸你的電腦 – hvgotcodes

+0

我已經設置路徑和JAVA_HOME指向JDK7。 – Adnan

71

從命令行嘗試sudo update-alternatives --config java以設置要使用的JRE的版本。這應該解決它。

+0

謝謝,這完全在Ubuntu 12.04上工作 – markdrake

+0

在Ubuntu服務器12.04上也有我的竅門! :) – xorinzor

+0

這對我來說,但只有在我重新啓動Eclipse後。 – elliptic1

9

假設你使用的是Eclipse,在MAC上,您可以:

  1. 啓動Eclipse.app
  2. 選擇Eclipse -> Preferences
  3. 選擇Java -> Installed JREs
  4. 點擊Add...按鈕
  5. 選擇MacOS X VM作爲JRE類型。按下一步。
  6. 在「JRE主頁:」字段中,鍵入/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
  7. 您應該看到在標題列表中的系統庫「JRE系統庫:」
  8. 給了JRE的名稱。推薦的名稱是JDK 1.7。點擊完成。
  9. 選中剛剛創建的JRE條目旁邊的複選框。這將導致Eclipse將其用作所有新Java項目的默認JRE。點擊確定。
  10. 現在,創建一個新項目。對於此驗證,請從菜單中選擇File -> New -> Java Project
  11. 在出現的對話框中,輸入項目的新名稱。對於此驗證,鍵入Test17Project
  12. 在對話框的JRE部分中,選擇Use default JRE (currently JDK 1.7)
  13. 單擊完成。

希望這有助於

+1

在Mac OS X Yosemite(10.10.5)上,我在**/Library/Java/JavaVirtualMachines/jdk1.7.0_79上找到了jdk .jdk/Contents/Home/** – GiriB

+0

您節省了我的時間,非常感謝〜 – BinGoBinBin

+0

還記得要更改現有項目的構建路徑以使用新的JDK – yankel

8

我有這個問題,接下來的安裝JDK7對Java 6,使用後向update-alternatives --config java JDK7的二進制文件是否已正確更新,但$JAVA_HOME環境變量仍然指向到Java 6的舊目錄。

相關問題