jenv切换JDK11后执行Maven命令报错求助
解决Maven调用JDK8报错
--add-exports未识别的问题 核心原因
你通过jenv配置的项目级JDK11没有被Maven识别,Maven仍在使用全局的JDK8,而--add-exports是JDK9+才支持的参数,因此JDK8无法识别该参数导致启动失败。
解决步骤
开启jenv的Maven插件
jenv默认不会自动对Maven生效,需要手动启用插件:jenv enable-plugin maven执行后重启终端,或执行
source ~/.bashrc(bash环境)/source ~/.zshrc(zsh环境)重新加载配置,再进入项目目录执行jenv version确认当前JDK版本为11.0.21,之后运行mvn -version验证Java版本是否正确。修正Maven配置的JDK指定
查看Maven全局配置文件~/.m2/settings.xml或MAVEN_HOME/conf/settings.xml,如果存在默认激活的JDK8配置,将其修改为JDK11:<profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>11</jdk> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> </profile>同时在项目的
pom.xml中明确指定编译用JDK版本,确保优先级:<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties>验证环境变量正确性
进入项目目录后,执行以下命令检查环境变量:echo $JAVA_HOME echo $PATH确保
JAVA_HOME指向jenv管理的JDK11路径(例如~/.jenv/versions/11.0.21),且该路径在PATH的最前端,避免系统全局JDK8被优先调用。临时指定JDK执行Maven命令
如果以上步骤无法生效,可在执行Maven命令时直接指定JDK11路径:mvn clean install -Djava.home=/你的jenv/JDK11实际路径
内容的提问来源于stack exchange,提问作者TD_Shori
相关产品推荐
相关产品推荐

