Hadoop "Could not find or load main class com.sun.tools.javac.Main"
Hadoop "Could not find or load main class com.sun.tools.javac.Main"
在我的问题作为重复问题被关闭之前:我查看了所有其他相关问题,但提供的解决方案对我不起作用,可能是因为我使用的是 Cygwin,而不是 Unix。
我正在试用教程 here。每当我 运行 命令(在 c:/hadoop 中)bin/hadoop com.sun.tools.javac.Main WordCount.java
时,我都会收到错误 Could not find or load main class com.sun.tools.javac.Main
.
我的 Java_Home
变量设置为:c:/PROGRA~1/Java/jdk1.7.0_17
(echo $JAVA_HOME
证实了这一点),我的 HADOOP_CLASSPATH
设置为 c:/PROGRA~1/Java/jdk1.7.0_17/lib/tools.jar
。
javac -version
确认我正在使用 jdk1.7.0_17.
有人知道可能是什么问题吗?
Windows 和 Unix/Linux 工具之间的差异之一是 PATH
和 CLASSPATH
变量的处理,其中 Windows 支持C:\...
路径表示法,PATH
和CLASSPATH
中的分隔符是分号;
,Linux上,其中文件路径中的:
非常很少见,分隔符是:
.
由于您在 cygwin 上 运行,因此您使用的是 Unix/Linux 版本的 Hadoop(可能还有 Java)。这意味着它可能期望 CLASSPATH
以冒号 (:
) 分隔。
所以你应该使用你给出的路径的 "Unix" 版本,在 cygwin 中可以通过将 c:
替换为 /cygdrive/c
.
在我的问题作为重复问题被关闭之前:我查看了所有其他相关问题,但提供的解决方案对我不起作用,可能是因为我使用的是 Cygwin,而不是 Unix。
我正在试用教程 here。每当我 运行 命令(在 c:/hadoop 中)bin/hadoop com.sun.tools.javac.Main WordCount.java
时,我都会收到错误 Could not find or load main class com.sun.tools.javac.Main
.
我的 Java_Home
变量设置为:c:/PROGRA~1/Java/jdk1.7.0_17
(echo $JAVA_HOME
证实了这一点),我的 HADOOP_CLASSPATH
设置为 c:/PROGRA~1/Java/jdk1.7.0_17/lib/tools.jar
。
javac -version
确认我正在使用 jdk1.7.0_17.
有人知道可能是什么问题吗?
Windows 和 Unix/Linux 工具之间的差异之一是 PATH
和 CLASSPATH
变量的处理,其中 Windows 支持C:\...
路径表示法,PATH
和CLASSPATH
中的分隔符是分号;
,Linux上,其中文件路径中的:
非常很少见,分隔符是:
.
由于您在 cygwin 上 运行,因此您使用的是 Unix/Linux 版本的 Hadoop(可能还有 Java)。这意味着它可能期望 CLASSPATH
以冒号 (:
) 分隔。
所以你应该使用你给出的路径的 "Unix" 版本,在 cygwin 中可以通过将 c:
替换为 /cygdrive/c
.