我使用的是Mac OS操作系统,当10版本升级到12版本之后,在Terminal中使用 mvn clean package的使用错误信息提示如下:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
问题分析
改种情况分为两种情况。
- 使用Terminal执行mvn clean package
- 使用IDEA的Terminal执行mvn clean package
1、 使用Terminal执行mvn clean package
执行一下命令来确定JAVA_HOME的配置情况:
mvn -version
我当前环境提示信息如下:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /Users/mzz/maven/apache-maven-3.6.0
Java version: 1.8.0_333, vendor: Oracle Corporation, runtime: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "12.4", arch: "x86_64", family: "mac"
信息中红色标识的部分需要特殊处理,我切换到该路径下之后看不出来什么问题。但是当我执行:
java -version
执行以上命令后会报错。可能是因为操作系统升级的过程中,jdk无法使用了。重新安装jdk环境后,执行一下命令来确定可用的JDK环境:
/usr/libexec/java_home -V
提示信息如下:
Matching Java Virtual Machines (3):
1.8.333.02 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_333 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
1.8.0_201 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
红色标记的部分是之前无法使用的JDK环境,蓝色的部分是我新安转的版本。之前执行的mvn -version命令中可以看到引用的maven路径。切换到:
cd /Users/mzz/maven/apache-maven-3.6.0/bin
然后编辑cmd文件,在文件头添加如下配置:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
添加完成后,使用mvn -version命令查看修改是否生效:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /Users/mzz/maven/apache-maven-3.6.0
Java version: 1.8.0_333, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "12.4", arch: "x86_64", family: "mac"
绿色标识的部分证明已经修改完成。再次执行mvn clean package就成功了。
2、使用IDEA的Terminal执行mvn clean package
打开相关配置项:
查看Maven home directory的配置,找到对应的maven,进行第1部分的设置即可。