mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE

一、背景

最近将mac 升级到 Big Sur 版本,出现了个别奇奇怪怪的小问题。

系统升级后执行 mvn 命令,总是出现以下错误:

No compiler is provided in this environment. Perhaps you are running
on a JRE

截图如下:
mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE

网上搜索了很多答案,基本都是说环境变量的问题,通过 java -version 检查了环境变量没啥问题。
折腾老半天没搞定,最终找到了解决方案,在这里将这个坑分享出来。

二、解决办法

2.1 下载并安装官方的 JDK

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

https://www.oracle.com/java/technologies/javase/javase9-archive-downloads.html

mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE

2.2 设置环境变量

vim ~/.bash_profile 添加如下

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib

编辑后保存, 执行 source ~/.bash_profile生效。

java -version 检查
mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE

2.3 查看mvn 版本

执行 mvn -version 查看

Java version 正确,但是 runtime 值为 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin

进入 /Library/Internet Plug-Ins/ 目录,删除 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin

重新执行 mvn -version runtime 正确,如下图所示(装了JDK9,JDK8也类似)。
mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE

再回到项目中执行 mvn 编译命令等,恢复正常。

三、感悟

可能是性格问题,或许有些缺乏延迟满足,总是想追求最新的软件和电子产品。
新的东西固然好,但是很容易成为小白鼠,成为第一批趟坑的人。

上一篇:拦截恶意链接和软件,Metacert 获 120 万美元股权融资


下一篇:【Spring Boot 快速入门】十、Spring Boot集成Druid数据监控