2014-01-06 46 views
0

當我嘗試對我的計算機上運行一個在Eclipse Java程序,我得到這個錯誤:Eclipse的運行功能不工作:不受支持的版本MAJOR.MINOR

Exception in thread "main" java.lang.UnsupportedClassVersionError: gameLogics/Game : Unsupported major.minor version 51.0 

at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

我在網上搜索,發現多種解決方案,但他們都只是說我試圖用Java的舊版本運行而不是編譯它。唯一的解決方案是重新下載Java或將Eclipse的合規性級別設置爲1.6,這兩者都不適合我。 (合規性級別沒有工作,因爲我使用了Java 7中僅有的一些功能。我之前使用過它,但它工作正常,但我需要Java 7的某些功能。)

奇怪的是,該項目完全適用於我其他計算機使用完全相同的文件,包括首選項文件和應用程序數據。如果我將它導出到任一臺計算機上,它也可以工作,所以只有Eclipse的運行功能似乎被破壞了。

我沒有提供任何代碼,因爲沒有單一的相關部分,所以我將不得不上傳我的所有代碼。

有沒有解決方案,這不是我在本文前面提到的那個?

編輯:如果重要的話,我的兩臺電腦都是Mac電腦。

+0

您的Eclipse可能運行在較舊的已安裝Java版本上。你的系統上安裝了多少個jdk?檢查你的eclipse.ini,看看它正在使用什麼-vm參數。 – watery

+0

你有沒有試過去項目>清潔,並從頭開始重建所有東西。也許BIN文件夾中的文件來自其他版本的JDK編譯的PC。也可以看看http://stackoverflow.com/questions/7237536/exception-in-thread-main-java-lang-unsupportedclassversionerror-a-unsupporte,因爲它可能是你的路徑。 –

+0

那裏沒有-vm參數。以下是該文件的內容:[eclipse.ini](http://pastebin.com/NbHmrqj7)。 – Ontonator

回答

0

兩個選項:

  1. 這是一個路徑問題:請參閱:Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0)
  2. 您需要重建的類文件。

您是否嘗試過重建項目?我會建議CLEAN和REBUILD。如果這不起作用,請轉到bin文件夾並刪除裏面的所有內容。 我懷疑eclipse沒有清除其他計算機上的舊.class文件。

如果這不起作用,請參閱鏈接,因爲它可能是路徑問題。 作爲另一篇文章說:

java.lang.UnsupportedClassVersionError happens because of a higher JDK during compile time and lower JDK during runtime.

所以,你需要檢查你的設置和路徑。很可能您可能正在編譯和運行不同的JDK版本/級別。

+0

我試過重建類文件,但這似乎沒有任何效果。另外,我選擇了「Java SE 7 [1.7.0_45]」作爲我的默認JRE,我正在編譯1.7的合規性級別。我已經檢查過以確保JRE的路徑正確。該項目的庫與默認的庫相同。這與Mac OS X堅持使用Java 6的事實有什麼關係?我不會認爲這很重要,因爲Eclipse允許指定特定的JRE系統庫。 – Ontonator

+0

您可以將合規性級別設置爲1.6並查看會發生什麼情況? –

+0

我收到此錯誤消息: 線程「main」java中的異常。lang.Error:未解決的彙編問題: \t對於低於1.7的源級別,不允許多捕獲參數 \t位於gameLogics.Game。 (Game.java:149) – Ontonator

相關問題