【问题标题】:How does %JAVA_HOME% work in Windows PATH?%JAVA_HOME% 如何在 Windows PATH 中工作?
【发布时间】:2014-08-29 14:48:16
【问题描述】:

我正在使用 Puppet 来自动安装 java。执行此操作时,我们首先将JAVA_HOME environment 设置为我们正在安装的任何Java 版本。然后我们将它添加到 Windows PATH 之前的 %JAVA_HOME%。这样,如果正在使用任何其他版本的 java,它将不会使用它,而是使用 JAVA_HOME 中的任何内容。我遇到的问题是当我运行dir %JAVA_HOME% 时我回来了

“系统找不到指定的路径”

然而,当我echo %JAVA_HOME% 时,它为我提供了通往 JDK 的正确路径。

我应该期待dir %JAVA_HOME% 向我显示目录内容吗?如果不是,为什么?我们有另一个使用完全相同的 Puppet 方法工作的程序,在执行 dir M2_HOME (maven) 时,它会正确打印出目录内容。

Java -version 仍然有效

【问题讨论】:

  • 你需要从java home中删除bin并添加%java_home%/bin

标签: java windows path environment-variables puppet


【解决方案1】:

您需要从 java home 中删除 bin 并添加 %java_home%/bin

【讨论】:

    【解决方案2】:

    奇怪的分辨率。我们原来的做法确实有效。但是JAVA_HOME 不能是C:\Program Files\xxxxxxx 它必须是C:\PROGRA~1\xxxxxx 才能列出目录内容。

    【讨论】:

    • 不,它没有 - 你只需要按照 Elliott 的评论在它周围加上引号。
    • 我向你保证,这也不起作用。它仅在使用 PROGRA~1 而不是 Program Files 时有效。 Windows 无法处理嵌入空间。
    • 当然 Windows 可以处理嵌入空间。由于 Windows 路径通常有嵌入的空间,如果没有的话,早就有人注意到了!不过,可以肯定的是,我只是尝试了dir "%ProgramFiles%",它运行良好。不管你的问题是什么,都不是。也许您在 %JAVA_HOME% 的开头或结尾有一个杂散空间?或者您在不寻常的上下文中运行 dir 命令,例如通过 Puppet 或从第三方 shell?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 2012-11-07
    • 1970-01-01
    • 2013-10-27
    • 2011-02-06
    相关资源
    最近更新 更多