当前位置: 首页 > 知识库问答 >
问题:

MVN-V给了我“不支持的Major.Minor版本51.0”

贺宏富
2023-03-14

我在终端中键入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 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中缺少导出java_home行。由于下面的正确答案,修复了。

共有1个答案

余铭晨
2023-03-14

首先,出现异常是因为正在加载的库对于运行的Java版本来说太新了。版本51.0是Java7,因此MVN必须与Java6或更早版本一起运行。无论您认为java_home是什么,这一点都不存在争议。

命令mvn是执行mvnJava可执行文件的shell脚本。它很短,很容易理解。

您可以通过插入

echo "$JAVA_HOME"
echo "$JAVACMD"
"$JAVACMD" -version
exec "$JAVACMD" ....
/System/Library/Frameworks/JavaVM.framework/Versions/Current‌​JDK/Home 

这是基于Java1.6的Apple JDK的位置。解决该问题的正确方法是确保JAVA_HOME在正确的.profile.bash_profile中正确设置,这取决于您使用的shell。

以下是我的.profile,删除了所有与mvn无关的位。

 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home
 M2_HOME=/usr/local/maven
 M2=$M2_HOME/bin
 MAVEN_OPTS="-Xmx512M"
 export M2_HOME M2 JAVA_HOME MAVEN_OPTS

 PATH=$JAVA_HOME/bin:$HOME/bin:$PATH:$M2

 EDITOR=vim 
 export EDITOR
 类似资料:
  • 我已经下载了程序: 解压缩它: 进入文件夹并运行: 这是我得到的错误: 我这样做过: 但是同样的错误 我的java版本: javac1.6。0_35 Java版本"1.6.0_35"OpenJDK运行时环境(IcedTea6 1.13.7) (6b35-1.13.7-1~Deb7u1)OpenJDK 64位服务器VM(build 23.25-b01,混合模式) 我读到这篇文章是因为我编译的版本比J

  • 我的pom.xml: 似乎所有的设置都是正确的,我指的是在pom和服务器上的java版本。

  • 当我试图编译我的GWT应用程序时,我得到的异常值低于异常值。知道吗?提前道谢。

  • 问题内容: 我正在尝试构建一个应用程序,但是它给出了一些错误。我的JDK版本如下: 这是我的错误日志: 问题答案: 发生这种情况是因为在编译时JDK较高,而在运行时JDK较低。 以下是版本列表:

  • 我打开JMeter,在日志中看到以下错误: jmeter.gui.util.MenuFactory:无法实例化com.atlantbh.jmeter.plugins.xmlformatter.gui.xmlformatpostProcessorGUI java.lang.unsupportedClassVersionError:kg/apc/jmeter/jmeterPluginsutils:不支

  • 错误:(1,0)原因:com/android/build/gradle/libraryplugin:不受支持的Major.minor版本52.0 存档中 MyPath\AndroidStudioProjects\MyApp\App\libs\ColorPickerPreference\ColorPickerPreference\build.grad 和java版本 java版本“1.7.0_79”