在Windows 7中,环境变量的宏不起作用

时间:2014-10-27 13:36:22

标签: windows environment-variables

我已设置JAVA_HOME变量
而且我也设置了路径变量:

C:\>set java_home
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_38

C:\>set path
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\To
rtoiseSVN\bin;%JAVA_HOME%\bin;C:\Program Files\apach\apache-maven-3.2.3\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

C:\>java -version
'java' is not recognized as an internal or external command,
operable program or batch file.

C:\>

这样就无法识别java了。

让我们改变一下(用%JAVA_HOME%\bin替换C:\Program Files\Java\jdk1.6.0_38\bin):

C:\>set java_home
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_38

C:\>set path
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\To
rtoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_38\bin;C:\Program Files\apach\apache-maven-3.2.3\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

C:\>java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)

这样做很好。

我错了什么?

1 个答案:

答案 0 :(得分:1)

"%JAVA_HOME%\bin"是一个完全有效的目录名称。 cmd需要先评估其价值才能使用。

call set path=%path%

应该适合你。


扩展

path加载了system值,然后与'用户'合并。值,当路径中的任何%var%被其当时的当前值替换时。如果您在路径中添加另一个%var%(例如,作为"用户"变量),则需要重新评估以解析该值。

结果是:如果路径包含要解析的值,则将路径设置为系统变量,而不是用户变量。