You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:12:08