【问题标题】:Windows environment variable resolution errorWindows环境变量解析错误
【发布时间】:2016-09-07 13:09:07
【问题描述】:

我正在尝试将 JAVA JDK 路径放入 Windows PATH 环境变量中。

我更改/插入了适当的变量并让命令 javac 昨天工作,但是当我今天尝试同样的事情时,我收到 command not Recognized 错误。

以下是相关变量的值(在新的 cmd 实例上):

>> echo %JAVA_HOME%
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_101

>> echo %PATH%
C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%\bin;C:\Users\anmol\AppData\Local\Programs\Python\Python35\Scripts\;C:\Users\anmol\AppData\Local\Programs\Python\Python35\;C:\Users\anmol\AppData\Local\Programs\Python\Launcher\ 

我试图通过写JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_101 来避免'Program Files' 中出现的空格,但错误仍然存​​在。

另外,如果我打开一个 cmd 并输入set path=%JAVA_HOME%\bin;%path%,然后在同一个会话中输入javac,它会被正确识别。

谁能告诉我发生了什么以及如何正确设置 PATH?

【问题讨论】:

    标签: java windows environment-variables


    【解决方案1】:

    您已使用set 命令修改了 PATH,该命令将更改应用于当前终端。要使其成为持久的系统范围设置,请改用setx。

    您需要在系统环境中同时使用 PATH 和 JAVA_HOME。

    注意`不会修改当前终端的环境设置:

    NOTE: 1) SETX writes variables to the master environment in the registry.
    
          2) On a local system, variables created or modified by this tool
             will be available in future command windows but not in the
             current CMD.exe command window.
    

    你的情况发生了什么?您在 JAVA_HOME 未知的时候设置了 PATH 环境变量。在这种情况下,%JAVA_HOME% 成为 PATH 字面意思的一部分。下面的例子证明:

    C:\>set X=%A%
    
    C:\>set A=something
    
    C:\>set X
    X=%A%
    
    C:\>set B=something
    
    C:\>set X=%B%
    
    C:\>set X
    X=something
    

    要修复它,请使用setx 设置 JAVA_HOME,关闭终端并打开一个新终端。然后用setx设置PATH,关闭终端再打开一个新的。

    或

    使用setx 设置JAVA_HOME,使用set 设置JAVA_HOME 以更新控制台。然后用setx设置PATH,关闭终端再打开一个新的。

    【讨论】:

    • PATH 变量已经包含 JDK 路径(在我执行 set 命令之前)。为什么错误仍然出现?
    • @AnmolSinghJaggi:您在设置 JAVA_HOME 之前设置了 PATH。我已经更新了我的答案
    • 好的,但是如何纠正呢?
    • 要修复它,使用 setx 设置 JAVA_HOME,关闭终端并打开一个新终端。然后用setx设置PATH,关闭终端再打开一个新的。
    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2019-02-09
    • 2016-11-04
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多