2014-10-20 30 views
0

我已經使用JDK 8.0創建了一個jar文件,我嘗試在具有JRE 7.0的系統中運行該jar文件,但是出現如下錯誤:由於在運行jar文件中的版本兼容性導致的錯誤

C:\Users\admin\Desktop>java -jar test.jar 
Exception in thread "main" java.lang.UnsupportedClassVersionError: test : Uns 
upported 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) 

我需要在我的jar文件創建中做出什麼改變。這樣它會運行沒有版本兼容性?

+0

如果您在Eclipse中創建項目,然後嘗試改變**項目方面**'Java'到'1.7'&'編譯version'爲'1.7'。然後嘗試運行帶有JDK 1.7的系統的jar。 – OO7 2014-10-20 09:50:45

+0

@ OO7我正在使用CMD和記事本,沒有IDE – androidGenX 2014-10-20 09:56:32

+0

什麼是目標系統操作系統? – OO7 2014-10-20 10:05:18

回答

1

您需要使用-source選項javac。例如:

javac -source 1.7 foo/Bar.java 

在理論上可以分別指定sourcetarget選項,但您的評論來看,這聽起來像瞄準1.7時,你不能使用Java 8種語言的功能在所有。

請注意,這僅涵蓋您自己的源代碼。如果xbasej-20091203.jar是針對Java 8構建的,則需要找到一個針對Java 7的版本。

+0

我試過,但我得到的錯誤在編譯像「的javac:目標版本1.7的衝突與默認源1.8版」 – androidGenX 2014-10-20 09:38:52

+0

@androidGenX:右鍵 - 聽起來就像你不能用那麼目標1.7當Java 8語言功能都沒有。 – 2014-10-20 09:39:10

+0

你能告訴我好友嗎?我想是這樣的:C:\ TIPL \ GCST> javac的-target 1.7 -classpath的lib/xbasej-20091203.jar Example2.java 的javac:目標版本1.7的衝突與默認源釋放1.8 – androidGenX 2014-10-20 09:39:47