【问题标题】:getting JAVA_HOME is incorrectly set with hadoop使用 hadoop 错误地设置了 JAVA_HOME
【发布时间】:2015-11-16 13:05:33
【问题描述】:

我刚刚下载了 hadoop 并解压缩了文件。但是当我从命令提示符运行 hadoop version 命令时,我遇到了错误。我仔细检查并 JAVA_HOME 设置为“C:\Program Files\Java\jdk1.8.0_45\bin”,这对我来说看起来不错。

C:\Users\shri-pc>hadoop version
The system cannot find the path specified.
Error: JAVA_HOME is incorrectly set.
       Please update C:\JAVA\hadoop-2.6.0\conf\hadoop-env.cmd
'-Xmx512m' is not recognized as an internal or external command,
operable program or batch file.

java -version 命令的输出正常。请指教。

C:\Users\shri-pc>java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) Client VM (build 25.51-b03, mixed mode)

【问题讨论】:

  • 我不会再说“我确定……”。 Hadoop不同意你的看法。如果你假设你犯了一个错误并且不遗余力地找到它,你会取得更快的进步。 java.exe 显示正确版本的事实还不够。 JAVA_HOME 设置为什么?你可以显示它。
  • JAVA_HOME 设置为“C:\Program Files\Java\jdk1.8.0_45\bin”。
  • 它应该没有\bin。 Hadoop 会在%JAVA_HOME%\bin\java 中查找java,所以如果您的JAVA_HOME 已经包含\bin,那么它将查找C:\Program Files\Java\jdk1.8.0_45\bin\bin\java,这显然不存在。 (这是使用 JAVA_HOME 的标准)
  • 是的,我先在没有 bin 的情况下使用,但它不起作用。我再次尝试删除 bin,然后关闭并打开命令提示符,但它给了我同样的错误。
  • 应该没有 /bin。然后将 JAVA_HOME/bin 添加到您的 PATH 中。

标签: java hadoop window


【解决方案1】:

路径中的空格无效。 只需删除路径中的所有空格。

就我而言,它正在使用:

set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_261

【讨论】:

    【解决方案2】:

    尝试改变路径

    C:\Program Files\Java\jdk1.8.0_45

    C:\PROGRA~1\Java\jdk1.8.0_45.

    【讨论】:

      【解决方案3】:

      如果您的 JAVA_HOME 为 Program Files,则在 JAVA_HOME 环境变量中将其更改为 PROGRA~1

      【讨论】:

      • 这对我有用,因为在我的情况下,问题是 JAVA_HOME 值不能包含空格。
      【解决方案4】:

      对我来说,它可以转到 java 路径并将其转换为 Windows 短名称,如下图所示:

      https://www.joe0.com/wp-content/uploads/2017/02/word-image-30.png

      来自这个网站:

      https://www.joe0.com/2017/02/02/how-to-install-a-hadoop-single-node-cluster-on-windows-10/

      【讨论】:

        【解决方案5】:

        问题在于 JAVA_HOME 路径中的空格。我将路径更改如下,它开始工作了。

        来自-

        "C:\Program Files\Java\jdk1.8.0_45\bin"

        到-

        “C:\PROGRA~1\Java\jdk1.8.0_45\bin”

        .

        【讨论】:

        • 我的回答包括set "PATH=%PATH%;%JAVA_HOME%\bin",这是您在 Windows 上转义变量中的空格的方式(从命令行)。如果没有 64 位 Windows 和 Java,则使用 ~1 有效。
        • 感谢艾略特。我已将您的答案标记为此问题的答案。只有一个建议 - 如果您可以将此作为注释放在您的答案中,那么它可能会对看到您答案的新人有所帮助。非常感谢!!
        • 我将 Java 文件夹移到了 C 盘。空间对我来说是个问题。谢谢!
        • 艾略特被烧死了。
        • 谢谢,您节省了很多时间和精力...!
        【解决方案6】:

        您的JAVA_HOME 不应包含bin。改成

        "C:\Program Files\Java\jdk1.8.0_45\bin"
        

        "C:\Program Files\Java\jdk1.8.0_45"
        

        您可以将它添加到您的路径(在 Windows 中),例如

        set "PATH=%PATH%;%JAVA_HOME%\bin"
        

        【讨论】:

        • 是的,Elliott,我有这个改变,但我仍然遇到同样的错误..
        • 是Windows,一般不能原地改变。尝试重新启动。
        猜你喜欢
        • 2012-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        相关资源
        最近更新 更多