项目场景:
今天在搞一个测试用例自动生成的工具使用,需要在IDEA里的终端用到mvn,但是执行后提示:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
问题描述
系统:Windows11
IDE:idea 2021.1.3
maven:3.8.3
Java:jdk1.8.0_221
原因分析:
一、环境变量设置问题
在网上直接搜这个报错信息,绝大部分都是说“环境变量”设置有误
包括但不限于
- “系统环境变量”中的JAVA_HOME没有停在JDK目录这级,而是深入到JDK目录下的bin目录
- “系统环境变量”中的JAVA_HOME末尾多了分号
- “系统环境变量”中的Path多了一些诸如分号、逗号、冒号等脏东西
- “用户环境变量”中建有JAVA_HOME,但与“系统环境变量”中的JAVA_HOME不一致
- 。。。。。。。。。
但是苯人的环境变量都没有上述问题。。。。。
二、IDEA设置问题
以上方法尝试过后都没有效果
记忆中以前都是能正常用的,无论是IDEA还是CMD里。遂去CMD尝试,发现一切正常,如下图:
自然而然猜想是IDEA不能正常访问到Maven,于是在网上搜索“IDEA配置Maven”尝试根据正确的方法推断问题所在,发现IDEA中使用的是IDEA自带的Maven,不是自己主机上的Maven,而不久前对环境变量进行了一次大清理,把Maven相关的修改成主机Maven的路径了。最后需要修改如下:
即:
- 环境变量的路径要和IDEA中使用的路径要对应同一个Maven
- “用户设置文件”和“本地仓库”最好也和使用的Maven相匹配(特殊需求除外,如特定的配置文件、特定的仓库路径)
解决方案:
修改完后,重新执行mvn指令,结果如下,可以看到没有错误提示了: