有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法找到或加载主类com。太阳工具。javac。主hadoop mapreduce

我正在努力学习MapReduce,但我现在有点迷路了

http://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Usage

特别是这组说明:

Compile WordCount.java and create a jar:

$ bin/hadoop com.sun.tools.javac.Main WordCount.java 

当我在终端中输入hadoop时,我能够看到“帮助”,它提供了参数,所以我相信我已经安装了hadoop

当我输入命令时:

编译字数。java并创建一个jar:

hadoop com.sun.tools.javac.Main WordCount.java

我得到了一个错误:

Error: Could not find or load main class com.sun.tools.javac.Main

我知道我已经安装了Java并在我的计算机上运行,因为我以前使用过它来创建其他程序

此命令输出:

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

也许我缺少一套Java工具?不确定


共 (3) 个答案

  1. # 1 楼答案

    我也犯了同样的错误

    我通过添加HADOOP_类路径环境参数解决了这个问题:

    export HADOOP_CLASSPATH=/usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar
    

    请确保已安装OpenJDK7。我使用的是Ubuntu 14.04:

    sudo apt-get install openjdk-7-jdk
    
  2. # 2 楼答案

    您不能安装jdk。检查你的/lib/工具。jar在java文件夹中
    否则,#sudo apt get install default jdk,错误消失

  3. # 3 楼答案

    bin/hadoop com.sun.tools.javac.Main WordCount.java最终以 java com.sun.tools.javac.Main WordCount.java

    如果classpath/javahome是正确的,那么尝试自己键入java ...,并使用TAB键检查名称com.sun.tools...。也许这个名字不合适。(egg.您使用的是来自Oracle而不是SUN的java)

    另一个建议是修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh。将tools.jar添加到HADOOP_CLASSPATH