【发布时间】:2017-08-11 15:56:55
【问题描述】:
我在终端输入mvn -v,它给了我
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:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
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)
我使用的java版本是当前的Java 8,
我的$JAVA_HOME 变量设置为/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home。
java -v给我
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
所以这一切都应该是正确的,对吧?知道我在这里可能缺少什么吗?
编辑:事实证明,我的.bash_profile 中缺少export JAVA_HOME 行。由于下面的正确答案已修复。
【问题讨论】:
-
这个错误只有一个可能的原因:您使用的是旧版本的 Java。您的系统上正在以某种方式获取 Java 8 以外的 Java 版本。
-
51 表示它是为 1.7 构建的,因此如先前的答案所示,您的 Java 版本不匹配。
-
您是否在某处设置了 M2_HOME?如果是这样删除它...
-
@carlspring 不,它不会,如果它首先与
UnsupportedClassVersionError崩溃,则不会。提问者实际上确实运行了mvn -v,这是mvn --version的同义词。