2014-01-29 105 views
0

我已經使用eclipse創建了一個jar文件。我的jdk版本是1.5.0。當我運行在linux機器上的那個jar文件與相同的JDK它工作正常。但是,當我運行Solaris機器上這個罐子JDK 1.5.0_14安裝提示錯誤爲類文件中版本號錯誤

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file 
     at java.lang.ClassLoader.defineClass1(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) 

我找不到任何解決方案..?

+0

通常會在您編譯更高版本並在較低版本的Java中運行時出現此類異常。 – Kick

+0

我知道你已經告訴我們這個版本,但是你可以在linux和solaris機器上發佈'java -version'的結果嗎? – BackSlash

+0

另外,請記住並不總是與運行eclipse的java相同的是eclipse用來編譯應用程序 – Leo

回答

0

當JVM無法讀取類文件時會發生這種情況。由於JVM是向後兼容的,即支持舊版本的類文件,所以您的類由編譯器創建,而不是您使用的JVM。

您正在使用JVM 1.5,但是您的代碼是由1.6或1.7(甚至可能是1.8?)的編譯器編譯的。

因此,您應該在運行應用程序的機器上升級您的Java環境,或者使用1.5編譯器編譯應用程序。第一種方式是絕對可取的。

相關問題