hadoop对获取JAVA_主页的设置不正确
我刚刚下载了hadoop并解压缩了文件。但当我从命令提示符下运行hadoop版本命令时,我发现了以下错误。我仔细检查,JAVA_HOME被设置为“C:\Program Files\JAVA\jdk1.8.0_45\bin”,这在我看来还行hadoop对获取JAVA_主页的设置不正确,java,hadoop,window,Java,Hadoop,Window,我刚刚下载了hadoop并解压缩了文件。但当我从命令提示符下运行hadoop版本命令时,我发现了以下错误。我仔细检查,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 u
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)
您的
JAVA\u主页
不应包括bin
。从
"C:\Program Files\Java\jdk1.8.0_45\bin"
到
您可以将其添加到您的路径(在Windows中),如
问题是JAVA_主路径中的空间。我改变路径如下,它开始工作 从- “C:\Program Files\Java\jdk1.8.0\U 45\bin” 到- “C:\PROGRA~1\Java\jdk1.8.0\u 45\bin”
.对我来说,转到java路径并将其转换为windows短名称是有效的,如图所示: 从本网站:
如果JAVA\u HOME是
程序文件
,则在JAVA\u HOME环境变量中将其更改为PROGRA~1
。尝试从
C:\ProgramFiles\Java\jdk1.8.0\u 45
到
C:\PROGRA~1\Java\jdk1.8.0\u 45
路径中的空格将不起作用。
只需删除路径中的任何空格
就我而言,它正在与以下方面合作:
set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_261
我会停止说“我确定……”。Hadoop不同意你的观点。如果你认为自己犯了一个错误,并想尽一切办法找到它,你会取得更快的进步。仅仅java.exe显示正确的版本是不够的。JAVA_HOME设置为什么?您可以显示它。JAVA\u HOME设置为“C:\Program Files\JAVA\jdk1.8.0\u 45\bin”。它应该没有
\bin
。Hadoop将在%java\u HOME%\bin\java
中查找java,因此如果您的java\u HOME已经包含\bin
,那么它将查找C:\Program Files\java\jdk1.8.0\u 45\bin\bin\java
,这显然是不存在的。(这对于JAVA_HOME的使用来说是相当标准的)是的,我首先使用的是没有bin,但它不起作用。我再次尝试删除bin,然后关闭并打开命令提示符,但它给出了相同的错误。应该没有/bin。然后将JAVA_HOME/bin添加到您的路径。是的,Elliott,我已经做了此更改,但仍然得到相同的错误。这是Windows,您通常无法进行更改。尝试重新启动。我的答案包括设置“PATH=%PATH%;%JAVA\u HOME%\bin”
,这就是如何在Windows上转义变量中的空格(从命令行)。如果您没有64位Windows和Java,那么使用~1
是可行的。谢谢Elliott。我已经把你的答案标记为这个问题的答案。只有一个建议——如果你能把它作为一个注释放在你的答案中,那么它可能会对看到你答案的新来者有所帮助。谢谢!!我把我的Java文件夹移到了我的C驱动器上。空间是我的问题。谢谢艾略特被烧伤了。谢谢你,你节省了很多时间和精力。。。!这对我来说很有效,因为在我的例子中,问题是JAVA_HOME值不能包含空格。
set "PATH=%PATH%;%JAVA_HOME%\bin"
set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_261