一、背景
最近将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
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
检查
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也类似)。
再回到项目中执行 mvn 编译命令等,恢复正常。
三、感悟
可能是性格问题,或许有些缺乏延迟满足,总是想追求最新的软件和电子产品。
新的东西固然好,但是很容易成为小白鼠,成为第一批趟坑的人。