奇怪的CMD环境变量行为

时间:2014-10-23 04:02:40

标签: java windows command-line cmd

所以我试图为程序设置我的JAVA_HOME变量,虽然我确定我设置了程序正在打印的正确目录:

The system cannot find the path specified.

我做了一些测试,现在我感到很困惑。 Terminal Output

其他信息:

C:\Program Files\Java\jre7\bin>java.exe -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

Windows版

OS Name:                   Microsoft Windows 8.1 Pro
OS Version:                6.3.9600 N/A Build 9600

1 个答案:

答案 0 :(得分:2)

cd命令处理带空格的路径,但dir要求引用路径(如果它包含空格)。

dir "%JAVA_HOME%"

会做你期望的。

问题是cd只需要一个路径,因此即使路径包含空格,它仍然被视为单个字符串。 dir可以处理由空格分隔的多个路径,因此当%JAVA_HOME%展开后,您将获得

dir C:\Program Files\Java\jre7\bin

包含两条路径(由dir命令看到),两者都不存在:

C:\Program
Files\Java\jre7\bin