windows – %M2%在系统变量Path中不起作用但在用户变量Path中起作用

我正在安装Maven,需要设置M2和M2_Home.我在环境变量的用户变量中设置了它们.我在环境变量的系统变量中添加了%M2%到Path变量.我期待能够运行mvn –version,但我不能.但是,如果我这样做
echo%Path%我可以看到路径中有%M2%,如果我回显%M2%,我可以看到mvn所在的bin目录.

所以我有这个问题.直到我在用户变量中创建Path变量并将%M2%添加到该变量(并将其从系统变量中的路径中删除)之前,问题才得到解决.现在它有效.有没有人知道为什么它只是以这种特定的方式工作?

您必须查看Windows源代码以确定发生了什么,但这并不让我感到惊讶.根据我的测试,似乎系统环境变量只能引用其他系统环境变量,而不是用户环境变量.

请注意,echo%PATH%应显示扩展路径.你不应该看到%M2%.

这可能是因为有时需要在没有用户上下文的情况下扩展系统环境变量.如果用户环境变量包含在系统环境变量的扩展中,则需要将其视为特殊情况.这也可能被认为是首选行为,因此用户的环境变量不会意外地影响系统变量的解释,或者存在与进程之间的环境变量继承方式相关的问题.

将%M2%添加用户路径中,或者将M2设置为系统而不是用户环境变量.

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...