2011-11-24 101 views
0

我收到此錯誤jvm的錯誤java.lang.UnsupportedClassVersionError錯誤:

Exception in thread "main" java.lang.UnsupportedClassVersionError: RunAll : Unsupported major.minor version 51.0 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(Unknown Source) 
     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$000(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) 
    Could not find the main class: RunAll. Program will exit. 

我從collegue複製的文件夾,並設置類路徑(相關需要的jar應用程序) 當我運行,我得到了上面的Erorr。

我不爲什麼我得到這個錯誤,因爲我們有相同的Java版本。

Java版本 「1.6.0_27」 的Java(TM)SE運行時環境(建立1.6.0_27-B07) 爪哇熱點(TM)64位服務器VM(構建20.2-B06,混合模式)

+0

你想要運行什麼? – gprathour

+0

你確定它是用jdk 6編譯的嗎? – soulcheck

回答

5

我懷疑你的同事正在使用Java 7 - Java 7編譯器使用版本51.0發出字節碼,除非被告知不要。

要麼自己重建代碼,要麼讓他用適當的-target選項重建。

+0

謝謝,Java 6版本用於任何一方,請告訴我「自己重建代碼」是什麼意思? – Revathi

+1

@Revathi:好的* *使用JDK 7來構建'RunAll.class'。通過「自己重建代碼」,我的意思是「掌握RunAll的源代碼,並自己運行編譯器」。 –

1

Version 51 class are produced by Java 1.7所以你和你的同事沒有相同的Java版本。無論誰在編譯代碼都使用Java 1.7。

那麼你的選擇是:

  • 升級你的環境,以1.7
  • 讓你的運動課,以提升自己的環境
  • 編譯.java文件.class文件自己
1

通用答案是:您無法在較低版本的JVM上運行使用較高版本編譯的類。

在你的情況下,類編譯Java 7的,和你想與Java 6

0

我正在尋找那個錯誤代碼,並且遇到了這個線程,然後我發現,我運行的是不同的Java虛擬機,然後是我的JDK。我更新了環境變化並在我的JDK提供的VM上啓動了我的應用程序,並解決了問題。

感謝這個線程,它給了我什麼要檢查。

我基本上是在一個不同的虛擬機上運行Apache TomCat,然後是我的JDK編譯的那個虛擬機,在更新我的安裝程序後,用正確的Java路徑重新啓動TomCAT,我的問題得到了解決。

要回答您的問題,請確保您的JDK和Java VM匹配。

相關問題