3

我正在使用 Spring Tool Suite(基本上与 Eclipse 相同,实际上找不到区别,但我正在使用它)进行分配,当我右键单击项目并单击时出现错误'运行方式-> Maven 安装'。

线程“main”中的异常 java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader) 中不受支持的 major.minor 版本 51.0 .java:637) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:621) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:283)在 java.net.URLClassLoader.access$000(URLClassLoader.java:58) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:197) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader .findClass(URLClassLoader.java:190) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401) 在 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) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher .mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254) 在 org.codehaus.plexus.classworlds.realm.ClassRealm。 loadClass(ClassRealm.java:239) 在 org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds .launcher.Launcher.main(Launcher.java:356)plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254) 在 org.codehaus.plexus.classworlds.realm.ClassRealm。 loadClass(ClassRealm.java:239) 在 org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds .launcher.Launcher.main(Launcher.java:356)254) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) 在 org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144) 在 org.codehaus.plexus .classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)254) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) 在 org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144) 在 org.codehaus.plexus .classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 的 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 启动(Launcher.java:229)在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 的 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 启动(Launcher.java:229)

我在堆栈交换中发现的所有其他内容都暗示这与 Java 版本有关,但我不知道我是怎么弄错的。当我在终端上运行 mvn -version 我得到

Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T21:57:37+10:00)
Maven home: /usr/local/Cellar/maven/3.3.3/libexec
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.4", arch: "x86_64", family: "mac"

当我运行 java -version 我得到

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

我尝试设置 JAVA_HOME (根据Maven Installation OSX Error Unsupported major.minor version 51.0)并将其设置为正确的路径。

我的 STS 设置说它正在使用 1.8 编译,并使用 1.8 运行,并且项目的属性说它也在使用 1.8 编译。我不明白问题出在哪里。

我最初尝试将所有内容都更改为 Java 1.7 以查看这是否是问题所在,但它仍然没有帮助。最后我把它改回了 1.8,因为那是我小组的其他人正在使用的。

这是我的第一篇文章,所以我不能发布屏幕截图,它们在链接中。 http://imgur.com/a/al7go

4

3 回答 3

2

我通过从屏幕截图 1 中的已安装 JRE 列表中删除 Java SE 6 来修复它。即使选择了 8,由于某种原因它仍然使用 6。

于 2015-09-22T05:26:54.030 回答
1

我遇到了同样的问题,通过删除 .m2 存储库或只是重命名它,解决了这个问题

于 2015-09-22T04:32:08.807 回答
0

你应该在执行 maven build 时配置 JRE 在此处输入图像描述

于 2017-04-13T11:37:45.480 回答