我正在尝试将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吗?
答案 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,关闭终端并打开一个新终端。