2016-07-21 100 views
0

當我運行我的項目時,我得到以下錯誤。我的jdk目前是1.8。爲了解決這個問題,我嘗試了重置jdk,降級到1.7,我檢查了我的構建路徑,我已經進入了首選項並恢復到默認值,這也是一樣的錯誤。我已經刪除並重新安裝了jdk。UnsupportedClassVersionError jdk 1.8

關於JavaLaunchHelper的錯誤,我在這裏發現一個問題,說這是一個在1.8版本中沒有修復的bug,它可以被忽略,因爲它們實際上是在正確的位置。

我的IDE是Spring Tool Suite,我正在寫Spring Data。

任何幫助表示讚賞,謝謝!

objc[8419]: Class JavaLaunchHelper is implemented in both   /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java and  /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. 
java.lang.UnsupportedClassVersionError: io/pivotal/ticket/RuleControllerTest : Unsupported major.minor version 52.0 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:685) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:421) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
+0

'jdk1.7.0_79'絕對不是'1.8'。所以你不應該感到驚訝,它不能運行需要'1.8'的代碼。 – Holger

+0

我檢查了這一點,我的編譯器使用1.8,我意識到不同之處。幾周前我不得不更改爲1.8,因爲我的項目需要它 - 我沒有做任何jdk更改,然後出現關於jdk1.7的錯誤。根據我發現的有關該錯誤的幾個論壇,jdk存在一個問題,會導致錯誤出現,但實際上不應該影響代碼 - UnsupportedClassVersion錯誤似乎是一個單獨的問題。 –

+0

我不知道你在說什麼其他問題,當你說「UnsupportedClassVersion錯誤似乎是一個單獨的問題」,因爲這是你在問題中提到的* only *問題。你的發佈日誌清楚地表明你正在嘗試在'jdk1.7.0_79'中運行應用程序。 – Holger

回答

1

io/pivotal/ticket/RuleControllerTest已經使用Java 1.8編譯,但是你想使用Java 1.7(或更早)來運行它。你應該檢查你的運行配置。由於這是從Eclipse的測試運行器運行的,因此您需要更改運行配置或使用JDK 1.8運行Eclipse。

+0

我正在使用Spring工具套件,雖然我已經在首選項部分找到編譯器設置,但我似乎無法找到如何更改運行配置?謝謝。 –