1. 程式人生 > 實用技巧 >maven打包時報No compiler is provided in this environment處理

maven打包時報No compiler is provided in this environment處理

* 系統:macOS
* 開發工具:Idea
* 問題描述:在idea中執行mvn clean install時報No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?報錯,打包失敗。
* 問題處理:
1、按照網上的方法檢查了idea的java配置,確認配置的是JDK而不是JRE,檢查方法可參考(https://blog.csdn.net/tolcf/article/details/50803414),嘗試切換idea的JDK配置問題依然存在,又嘗試在系統終端執行 mvn clean install 也報同樣的錯誤;

1 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

2、只能再次求助百度,偶然找到一篇文章(https://stackoverflow.com/questions/21099072/eclipse-maven-error-no-compiler-is-provided-in-this-environment)從裡面得到一點啟發嘗試執行 mvn help:system 查看了一下系統的各種變數和屬性,發現PATH中居然不包含JAVA_HOME路徑,以前明明配置過的

1 PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: 

但奇怪的是此時執行java -version是居然可以正常獲取java版本(此處原因不詳),嘗試執行了source /etc/profile,再次執行mvn clean install打包成功了!頓時一陣欣喜,然後再次在idea中執行時又失敗了!!!


3、再次查看了一下環境變數,JAVA_HOME又沒了!不過現在知道問題原因就好解決了,檢視自己的預設shell echo $SHELL,bash 編輯.bash_profile,zsh編輯.zshrc,在最下面新增
` source /etc/profile ` 編輯儲存後不要忘了執行source ~/.zshrc,再次在idea中執行打包命令就成功了!

* 遺留問題:目前看問題本質就是環境變數失效了,但失效原因不清楚,還有配置/etc/profile時居然不是全域性生效了,也很奇怪,暫不深究了,以後慢慢研究
* 補充知識:
1、java環境變數配置

1 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/
2 CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3 PATH=$JAVA_HOME/bin:$PATH:
4 export JAVA_HOME
5 export CLASSPATH
6 export PATH