IntelliJ IDEA在Mac运行Maven命令报错No compiler is provided in this environment如何解决
首先注意你输入的执行命令存在笔误,正确的Maven Wrapper清理打包命令为 ./mvnw clean package。
你遇到的报错提示如下:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
该报错的核心原因是Maven运行时依赖的环境只有JRE(Java运行环境),缺失JDK(Java开发工具包)里的javac编译器,可按以下步骤逐一排查解决:
步骤1:验证本地JDK安装状态
- 打开Mac系统终端,执行命令:
/usr/libexec/java_home -V,查看已安装的JDK版本列表- 如果输出为空,说明未安装完整JDK,下载对应版本的OpenJDK/OracleJDK安装即可
- 如果有输出内容,继续执行
javac -version,若能正常输出版本号则JDK安装正常,进入下一步排查
步骤2:配置系统JAVA_HOME环境变量
- 先确认当前使用的shell类型,执行命令:
echo $SHELL- 输出为
/bin/zsh则编辑配置文件:vim ~/.zshrc - 输出为
/bin/bash则编辑配置文件:vim ~/.bash_profile
- 输出为
- 在配置文件末尾添加如下内容(版本号替换为你实际安装的JDK版本,比如11、17均可):
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH
- 保存文件后执行对应命令使配置生效:
- zsh执行:
source ~/.zshrc - bash执行:
source ~/.bash_profile
- zsh执行:
- 验证配置是否生效:执行
echo $JAVA_HOME,正常会输出JDK的安装路径
步骤3:校验IntelliJ IDEA内的相关配置
大部分该场景下的报错都是IDEA配置错误导致,按以下路径检查:
- 打开Maven配置页:
IntelliJ IDEA > 设置 > Build, Execution, Deployment > Build Tools > Maven > Runner- 检查
JRE下拉框选项,必须选择已安装的JDK版本,不能选择JRE或IDEA内置的JBR运行环境
- 检查
- 打开项目结构配置(快捷键
⌘+;):- 进入
Project Settings > Project,确认SDK选项选择的是JDK而非JRE - 进入
Project Settings > Modules,逐个检查模块的Dependencies标签下的Module SDK,统一选择正确的JDK版本
- 进入
- 若使用项目自带的Maven Wrapper,检查项目根目录下
.mvn/wrapper/maven-wrapper.properties文件,删除强制指定错误JDK路径的配置项
步骤4:临时生效方案
如果以上配置都完成后仍报错,可在执行打包命令时直接指定JAVA_HOME路径:
JAVA_HOME=$(/usr/libexec/java_home -v 1.8) ./mvnw clean package
内容的提问来源于stack exchange,提问作者Imran
相关产品推荐
相关产品推荐

