2014-07-16 118 views
1

使用一個小型網絡程序播放,使用netbeans創建了一個Jar。運行在我的電腦上的Java 1.7.0.60,但只是罰款我把它給了Java的1.7.0_65它不會運行新版本的另一臺計算機的時候,我得到這個錯誤:在另一臺計算機(其他Java版本)上運行Jar時的異常

C:\Program Files (x86)\Java\jre7\bin>java -jar ReverseEchoServer.jar 
Exception in thread "main" java.lang.UnsupportedClassVersionError: reverseechose 
rver/SocketClient : Unsupported major.minor version 52.0 
     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.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 sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 

我已經看了幾在這裏討論PATH的帖子,已經看過,但沒有運氣。我相信它的版本差異。任何意見將不勝感激,謝謝!

+1

[類文件版本52似乎是Java 8](http://en.wikipedia.org/wiki/Java_class_file)。當然你在你的機器上使用Java 7運行它? – Thomas

+1

AFAIK它將只會有所作爲,如果你將在Java 7中編譯它,並嘗試運行它在Java 6 – SparkOn

+2

@ M.Sharma否,這將是相反的方式。較舊的類文件版本將被執行(例如,Java 7可以運行爲Java 6及更低版本編譯的類),但更新的版本僅被報告爲不受支持。 – Thomas

回答

1

爲Java 7編譯的Java類文件具有主/次版本51/0。如果您的JVM實現沒有爲Java 7做好準備,它會給你這個錯誤提示「我不知道如何解釋和運行這個類文件」。

嘗試編譯舊JVM版本或升級JVM。

使用目標並指定需要使用目標開關後跟版本號執行的版本。

javac -target 1.7 yourJarName.jar 
相關問題