Mac系统下Maven 3.9.x运行报错UnsupportedClassVersionError求助
Maven运行报错:UnsupportedClassVersionError 解决方法
问题背景
在Mac系统中运行Maven时触发如下错误,当前Java与javac版本均为1.7.0_80,Maven版本为3.9.0/3.9.1。
报错及环境信息
mvn Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:425) 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:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:140) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:259) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) pwd /usr/local/Cellar/maven/3.9.1 java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) javac -version javac 1.7.0_80
原因分析
major.minor version 52.0对应Java 8(JDK 1.8),说明Maven 3.9.x系列是用Java 8编译的,无法在Java 7运行环境下启动。- Maven官方兼容规则:3.9.x及后续版本要求Java 8或更高版本JDK支持,Java 7仅兼容到Maven 3.5.x系列。
解决方案
方案一:升级Java版本至8或更高
- 安装Java 8或更高版本(如OpenJDK 8)
- 在Mac上切换默认Java版本:
# 查看已安装的Java版本列表 /usr/libexec/java_home -V # 设置JAVA_HOME为Java 8 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) # 验证版本切换结果 java -version - 重新执行Maven命令即可正常运行。
方案二:降级Maven至兼容Java 7的版本
Maven 3.5.x是最后支持Java 7的稳定分支,推荐安装3.5.4版本:
- 卸载当前Maven 3.9.x:
brew uninstall maven - 安装Maven 3.5:
brew install maven@3.5 - 配置环境变量(适配zsh/bash):
# zsh用户 echo 'export PATH="/usr/local/opt/maven@3.5/bin:$PATH"' >> ~/.zshrc source ~/.zshrc # bash用户 echo 'export PATH="/usr/local/opt/maven@3.5/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile - 验证Maven版本:
mvn -v
内容的提问来源于stack exchange,提问作者Neenu Chandran
相关产品推荐
相关产品推荐

