Windows环境变量分辨率错误

时间:2016-09-07 13:09:08

标签: java windows environment-variables

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

我更改/插入了相应的变量并让命令javac在昨天正常工作,但是当我今天尝试相同的操作时,我发现命令无法识别错误。< / p>

以下是相关变量的值(在新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\ 

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

此外,如果我打开cmd并键入set path=%JAVA_HOME%\bin;%path%,然后在同一会话类型javac中,则会正确识别它。

有人能告诉我们发生了什么以及如何正确设置PATH吗?

1 个答案:

答案 0 :(得分:0)

您已使用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,关闭终端并打开一个新终端。