Git Bash提示mvn: command not found,CMD下Java与Maven配置正常
问题核心原因
你遇到的Git Bash识别不到mvn命令的问题,本质是把Windows系统环境变量配置、Git Bash的Shell语法配置完全混在了同一个配置域里,两类配置的语法规则不兼容,直接导致Git Bash无法正确解析路径。
- 你往Windows系统环境变量的Path配置里,直接粘贴了
export PATH=$PATH:/c/Program\ Files/Java/...这类Git Bash专属的Shell语法命令,Windows系统本身完全不识别export的语法,这段内容在系统环境变量里属于无效片段 - 你在CMD下能正常运行Java、Maven,是因为CMD解析环境变量时会自动跳过带非法语法的路径片段,并没有真正解析你混进去的Git Bash风格路径,所以CMD下功能完全正常
- 而Git Bash启动时,读取继承来的Windows全局环境变量时,会因为碰到带非法语法的路径片段中断解析,连带把后面配置的
%M2_HOME%\bin这类有效路径也识别失败,最终触发mvn: command not found的报错
分步解决操作
- 先打开Windows系统环境变量配置页,把Path里混进去的那段以
export PATH开头的内容彻底删除,清空无效语法对全局配置的污染 - 打开Git Bash终端,执行
vi ~/.bashrc打开Git Bash专属的用户配置文件,在文件末尾追加如下内容:export JAVA_HOME="/c/Program Files/Java/jdk1.8.0_281" export M2_HOME="/c/Program Files/apache-maven-3.8.1" export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin - 保存退出配置文件后,执行
source ~/.bashrc让配置即时生效,无需重启Git Bash - 输入
mvn -v验证,能正常输出版本信息即为配置成功
避坑提醒
- 不要把Git Bash专属的
export语法、/c/xxx格式的Unix风格路径,直接粘贴到Windows系统环境变量的配置框里,两类配置的语法完全不通用 - 路径里带空格的文件夹(比如
Program Files),在Git Bash的配置里必须用英文双引号包裹,不然会被解析成多个独立路径导致识别失败 - 不需要为了适配Git Bash修改原有的Windows系统环境变量配置,只要在
.bashrc里明确配置好Java和Maven的路径,就能正常识别命令
内容的提问来源于stack exchange,提问作者Alex Doc
相关产品推荐
相关产品推荐

