2016-09-02 70 views
0

我正在與我的朋友在Java 7上做Spring-boot項目。它工作正常。然而,他們決定把它放在java 6服務器上。所以我們必須改變它。 在我的朋友的筆記本電腦上,它工作正常,但我的沒有。我不知道爲什麼它會像這樣。嘗試使用java編譯時彈出引導「不支持major.minor版本51.0」6

我搜索了一些,發現很多根本原因是當你編譯高版本(例如Java 7),並在Java 6上運行它。但是它對我來說,它運行良好,當我運行工程在STS彈簧啓動的應用程序(這是在Java 6 JRE): enter image description here

但是,當我需要它成爲罐子(這是我做的Maven構建/行家乾淨):

enter image description here

以下是完整日誌:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401) 
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42) 
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) 
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254) 
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) 
at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 

我想知道這個編譯器有什麼問題嗎? 這裏是我讀過一些鏈接:

Spring Boot - Unsupported major.minor version 51.0

Unsupported major.minor version 51.0 OpenShift

How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

Why am I getting Unsupported major.minor version 51.0

java.lang.UnsupportedClassVersionError Unsupported major.minor version 51.0

java.lang.UnsupportedClassVersionError: javax/servlet/ServletException : Unsupported major.minor version 51.0

https://stackoverflow.com/questions/36106755/unsupported-major-minor-version-51-0

Unsupported major.minor version 51.0 but everything is set to JDK 1.6

我懷疑這必須與我的STS配置,或者我的筆記本電腦,因爲我的朋友也在使用STS,它工作得很好。我做了這個建議:

Java 6 Unsupported major.minor version 51.0

enter image description here

但還是錯誤仍然存​​在。 任何建議將不勝感激。

+3

春季啓動不兼容過時的java6版本 – Jens

+0

看看這個,它可能會有所幫助http://stackoverflow.com/questions/38613445/why-am-i-getting-unsupported-major-minor-version-51 -0/38613841#38613841 – abarisone

回答

1

事實證明,我的朋友根本沒有改變Java編譯器。他們只是改變Java版本上的pom.xml:

enter image description here

而且不知何故,運行良好,我們的Java 6服務器上。

因此,除了與abarisone意見,彈簧boot和/或它的依賴需要的Java 7個或更多,但是當我們編譯它(與Java 7)目標設置爲Java 6中, 編譯令人驚訝的是在java 6機器上運行。有人可以解釋它爲什麼嗎?它只是運氣還是什麼?

相關問題