我正在安装Maven,需要设置M2和M2_Home.我在环境变量的
用户变量中设置了它们.我在环境变量的系统变量中
添加了%M2%到Path变量.我期待能够运行mvn –version,但我不能.但是,如果我这样做
echo%Path%我可以看到路径中有%M2%,如果我回显%M2%,我可以看到mvn所在的bin目录.
所以我有这个问题.直到我在用户变量中创建Path变量并将%M2%添加到该变量(并将其从系统变量中的路径中删除)之前,问题才得到解决.现在它有效.有没有人知道为什么它只是以这种特定的方式工作?
您必须查看Windows源
代码以确定发生了什么,但这并不让我感到惊讶.根据我的测试,似乎系统环境变量只能引用其他系统环境变量,而不是
用户环境变量.
请注意,echo%PATH%应显示扩展路径.你不应该看到%M2%.
这可能是因为有时需要在没有用户上下文的情况下扩展系统环境变量.如果用户环境变量包含在系统环境变量的扩展中,则需要将其视为特殊情况.这也可能被认为是首选行为,因此用户的环境变量不会意外地影响系统变量的解释,或者存在与进程之间的环境变量继承方式相关的问题.
将%M2%添加到用户路径中,或者将M2设置为系统而不是用户环境变量.