尝试编译hadoop程序时未找到java:com.sun.tools.javac.main

ibps3vxo  于 2021-05-30  发布在  Hadoop
关注(0)|答案(3)|浏览(342)

当我试图用这个命令在hadoop中编译我的程序时

bin/hadoop com.sun.tools.javac.Main WordCounter.java

从hadoop文件夹,它说

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

我查看了类似的线索,人们建议检查 JAVA_HOME 正确陈述。所以在 etc/hadoop/hadoop-env.sh 我加了这句话

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

然后检查是否 tools.pack 已正确打开 Package /usr/lib/jvm/java-7-openjdk-amd64/lib 是的。然后我试着 javac -version 这给了

javac 1.7.0_65

我试着重新安装java,但没有解决问题。

fdbelqdn

fdbelqdn1#

我不得不将hadoop降级到2.9.2,它正在工作。
我的环境中也有这些:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=${JAVA_HOME}/bin:${PATH}
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
brgchamk

brgchamk2#

尝试设置hadoop\u classpath环境变量

export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar
w7t8yxp5

w7t8yxp53#

这个错误意味着您没有使用jdk来启动hadoop。jre(纯运行时)和jdk之间的主要区别是java编译器 javac . 要查看是否有java编译器,需要检查两个地方:应该有 javac$JAVA_HOME/bin 文件夹加上必须有一个文件 $JAVA_HOME/lib/tools.jar .
在您的例子中,第一个(启动编译器的二进制文件)可能会丢失,但您绝对需要 tools.jar .
你说你有一个 tools.pack 但我以前没听说过这个。使用包管理器搜索 openjdk 然后在结果列表中查找一个 jdk . 在我的系统里,那就是 openjdk-7-jdk . 安装此软件包,错误应该会消失。

相关问题