最近换了台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,血淋淋的教训…还是一直反复出现这个问题。
千算万算没想到是JDK的问题!!! 从java-version
命令的编译成功,到Test案例的控制台输出,再到Maven的版本替换,最终 排查到是M1芯片必须要使用支持M1的JDK!!!
(点击下载,提取码: trv5)
当然啦,大家也可自行去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版本)
在配置的过程中遇到些许小坑,这里简单记录一下,希望对大家有所帮助。
使用 vi ~/.bash_profile
命令,下图是我配置的环境变量
我这里配置了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!
zsh: command not found: mvn
错误提示,如下图所示如果已经配置了maven,但是每次在终端执行 mvn 命令的时候,都必须要执行下 source ~/.bash_profile 才能生效。这是因为当 Mac 上安装了 zsh 后,.bash_profile 文件的配置无法生效。解决方案是:
vi ~/.zshrc
在文件的末尾添加下面的命令:
source ~/.bash_profile
这样,当 zsh 启动的时候,会读取 .bash_profile 文件的内容并使之生效(前提是在~/.bash_profile 的文件中配置了Maven的环境变量
)