【问题标题】:%M2% not working in system variable Path but in user variable Path only%M2% 不在系统变量 Path 中工作,但在用户变量 Path 中仅工作
【发布时间】:2012-10-22 10:10:40
【问题描述】:

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

所以我遇到了这个问题。直到我在用户变量中创建了一个路径变量并将%M2% 添加到该变量(并将其从系统变量中的路径中删除)后,问题才得到解决。现在它起作用了。有谁知道为什么它只以这种特定方式工作?

【问题讨论】:

    标签: windows maven path


    【解决方案1】:

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

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

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

    %M2% 像您所做的那样添加到用户路径,或者将M2 设为系统而不是用户环境变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 2014-11-13
      • 2014-02-11
      相关资源
      最近更新 更多