【问题标题】:Doesn't work macros for environment variables in Windows 7不适用于 Windows 7 中环境变量的宏
【发布时间】:2014-10-27 13:36:21
【问题描述】:

我设置了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)

这种方式效果很好。

我做错了什么?

【问题讨论】:

  • 从我的头顶..你设置路径后重新启动cmd提示符吗?
  • 是的,我肯定在每次环境变量更改后都重新启动了 cmd
  • downvoter,请解释你的投票。

标签: windows environment-variables


【解决方案1】:

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

call set path=%path%

应该适合你。


扩展

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

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

【讨论】:

  • 你能解释更多细节吗?我确信在没有这个不清楚的指令之前它可以工作。
猜你喜欢
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 2015-05-03
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
相关资源
最近更新 更多