2014-01-07 47 views
1

我有一個在eclipse和cmd提示符下正常運行的Jar。 當我嘗試在Unix中執行相同的操作時,它沒有執行。Jar在eclipse中執行但未在Unix中運行

說明: Unix中的Java版本是1.5;在Eclipse的Java版本是1.7

java -jar text.jar 

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(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

回答

3

你自己回答了這個問題。當編譯爲1.7時,您嘗試在1.5環境中執行jar。更新你的Unix JRE到1.7,它應該可以工作。

或者,您可以在1.5重建jar。在eclipse中,右鍵單擊項目瀏覽器中的項目=> properties => java compiler =>編譯器合規性級別。

1

你得到UnsupportedClassVersionError當你試圖運行具有在使用不是您正在使用在運行時的一個較新的版本內置的類路徑罐子的應用程序。

+0

解決方案是什麼? – logan

+1

將計算機升級到較新的Java版本,或者使用較舊的版本構建jar,前提是舊版本可以編譯代碼。 –

0

當您嘗試運行爲比您擁有的版本更新的Java版本編譯的類時,會出現此錯誤;例如,如果您嘗試在Java 5 JVM上使用爲Java 6或更新版本編譯的類。

它不一定是你自己的班級;您可能正在使用一些爲Java 6或更新版本構建的庫。

您是否使用特定的庫(JAR文件)?檢查它們是否與Java 5兼容。或者將Java版本升級到Java 6

相關問題