在我的问题以复制方式结束之前:我已经查看了所有其他相关问题,但提供的解决方案对我不起作用,可能是因为我使用的是Cygwin,而不是Unix。
我正在尝试tuturial 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。
有人知道会出现什么问题吗?
答案 0 :(得分:1)
Windows和Unix / Linux工具之间的区别之一是处理PATH
和CLASSPATH
变量,在Windows中,支持C:\...
路径表示法,PATH
路径表示法中的分隔符{1}}和CLASSPATH
是分号;
,在Linux上,文件路径中的:
非常罕见,分隔符为:
。
当你在cygwin上运行时,你正在使用Unix / Linux版本的Hadoop(也可能是Java)。这意味着它可能期望CLASSPATH
以冒号(:
)分隔。
所以你应该使用" Unix"您给出的路径的版本,通过将c:
替换为/cygdrive/c
,可以在cygwin中使用。