【问题标题】:Spring-boot "Unsupported major.minor version 51.0" when try to build with java 6尝试使用 java 6 构建时 Spring-boot “不支持的 major.minor 版本 51.0”
【发布时间】:2017-01-10 06:52:07
【问题描述】:

我和我的朋友在 java 7 上做 Spring-boot 项目。它工作正常。 但是,他们决定将它放在 java 6 服务器上。所以我们必须改变它。 在我朋友的笔记本电脑上它工作正常,但我的没有。我不知道为什么会变成这样。

我搜索了一些,发现很多根本原因是当您使用更高版本(例如 java 7)编译并在 java 6 上运行它时。但对我来说,当我运行项目时它运行良好作为 STS 上的 Spring-Boot 应用程序(在 java 6 JRE 上):

但是当我需要它变成 jar 时(我做了 maven build/maven clean):

这是完整的日志:

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

但错误仍然存​​在。 任何建议将不胜感激。

【问题讨论】:

标签: java spring maven


【解决方案1】:

事实证明,我的朋友根本没有改变 Java 编译器。他们只是在 Pom.xml 上更改 Java 版本:

不知何故,它在我们的 Java 6 服务器上运行良好。

所以,除了 jensabarisone cmets,Spring-boot 和/或其依赖项需要 java 7 或更高版本,但是当我们编译它时(使用 java 7 ) 目标设置为 java 6,它编译,并且出人意料地 在 java 6 机器上运行。有人可以解释为什么吗?是运气还是什么?

【讨论】:

    【解决方案2】:

    当您想将 Java 6 与 Spring Boot 一起使用时,请确保遵循说明:

    http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-use-java-6

    (也就是说,你真的不应该再使用 Java 6。即使 Java 7 也有 no more public updates since April 2015

    【讨论】:

      猜你喜欢
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多