Mac中IDEA的maven问题:No compiler is provided in this environment. Perhaps you are running on a JRE

问题场景:

最近换了台M1芯片的Mac,于是开始了简单的环境安装(踩了这个大坑!!!)
介绍一下自己的电脑环境:Mac Pro 、 开发工具IDEA


问题描述:

在正常安装JDK和Maven后,对环境变量也进行了相关配置,但是!!!一直出现以下编译问题!

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project erp-buffer-model: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 

原因分析:

这个错误问题的描述是:在这种环境下没有提供编译器。也许你运行的是JRE而不是JDK。
从字面意思上看是环境变量配置出现了问题,于是乎…开始了漫长的的 百度 查看环境变量进行相关修改,从bash到profile,血淋淋的教训…还是一直反复出现这个问题。

Mac中IDEA的maven问题:No compiler is provided in this environment. Perhaps you are running on a JRE_第1张图片


解决方案:

千算万算没想到是JDK的问题!!! 从java-version命令的编译成功,到Test案例的控制台输出,再到Maven的版本替换,最终 排查到是M1芯片必须要使用支持M1的JDK!!!(点击下载,提取码: trv5)

当然啦,大家也可自行去JDK官网进行下载,官网地址(点我,可能下载较慢)

遇到的坑:

1. 遇到这个问题,那肯定就要进行JDK的卸载了!这里呢 ,我也写一下Mac中JDK卸载的方法,方便大家快速解决这个问题

(1)打开终端,输入下面删除命令(不会坑你的,放心 )

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefpane

(2)查找当前JDK版本

输入:ls /Library/Java/JavaVirtualMachines/ 
输出:jdk1.8.0_181.jdk(看你自己的输出版本)

(3)最后根据本机JDK版本进行删除

sudo rm -rf /Library/Java/JavaVirtualMachines/  jdk1.8.0_181.jdk (你自己输出的jdk版本)

在配置的过程中遇到些许小坑,这里简单记录一下,希望对大家有所帮助。

2. 安装完JDK后,最好要配置一下环境变量(虽然现在高版本JDK已经配置了),并且配置完后一定要刷新一下配置,使其生效(下面是我的环境变量配置,可参考)!

使用 vi ~/.bash_profile 命令,下图是我配置的环境变量
Mac中IDEA的maven问题:No compiler is provided in this environment. Perhaps you are running on a JRE_第2张图片

我这里配置了MAVEN、MYSQL和JDK的环境变量(注意你自己的安装位置

 MAVEN_HOME=/Users/duanyue/Downloads/software/apache-maven-3.8.2
 PATH=$MAVEN_HOME/bin:$PATH

export PATH=$PATH:/usr/local/mysql-5.6.3/bin
export PATH=$PATH:/usr/local/mysql-5.6.3/support-files

export M2_HOME=/Users/duanyue/Downloads/software/apache-maven-3.8.2
export PATH=$PATH:$M2_HOME/bin



export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
~                                                                 

在确认无误后,使用 source ~/.bash_profile 命令刷新配置使其生效。之后可以使用 java -version 命令 和 javac -version 命令测试环境变量是否生效,也可以用 mvn -v 命令测试Maven的环境变量是否生效!如下图所示时,便证明you win!
Mac中IDEA的maven问题:No compiler is provided in this environment. Perhaps you are running on a JRE_第3张图片

3. 出现 zsh: command not found: mvn 错误提示,如下图所示

在这里插入图片描述

如果已经配置了maven,但是每次在终端执行 mvn 命令的时候,都必须要执行下 source ~/.bash_profile 才能生效。这是因为当 Mac 上安装了 zsh 后,.bash_profile 文件的配置无法生效。解决方案是:

vi ~/.zshrc

在文件的末尾添加下面的命令:

source ~/.bash_profile

Mac中IDEA的maven问题:No compiler is provided in this environment. Perhaps you are running on a JRE_第4张图片
这样,当 zsh 启动的时候,会读取 .bash_profile 文件的内容并使之生效(前提是在~/.bash_profile 的文件中配置了Maven的环境变量

你可能感兴趣的:(java,IDEA,jdk,java,maven)