【问题标题】:Strange CMD Evironment Variable Behavior奇怪的 CMD 环境变量行为
【发布时间】:2014-10-23 04:02:39
【问题描述】:

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

The system cannot find the path specified.

我做了一些测试,现在我很困惑。

其他信息:

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

【问题讨论】:

    标签: java windows command-line cmd


    【解决方案1】:

    cd 命令处理带有空格的路径,但dir 要求您在路径包含空格时引用它。

    dir "%JAVA_HOME%"
    

    会做你所期望的。

    问题在于cd 只需要一个路径,因此即使路径包含空格,它仍被视为单个字符串。 dir 可以处理多个路径,由空格分隔,所以当 %JAVA_HOME% 扩展时,你会得到

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

    其中包含两个路径(如 dir 命令所见),但都不存在:

    C:\Program
    Files\Java\jre7\bin
    

    【讨论】:

    • 现在我如何设置 %JAVA_HOME% 以便 dir %JAVA_HOME% 工作?因为 setx JAVA_HOME "[path]" 不起作用。
    • @ca.adamgordon 为什么需要这样做?无论如何,它可以通过转义双引号来完成:SETX [options] JAVA_HOME ""C:\Program Files\Java\jre7\bin"",或者您可以使用短名称(MS-DOS 名称):SETX [options] JAVA_HOME C:\PROGRA~1\Java\jre7\bin
    • 一个我没有编写的 cmd 脚本正在使用该变量来查找 java.exe 的位置,并且它的失败就像 dir 一样。 C:\PROGRA~1\... 就像一个魅力
    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多