Java: com.sun.tools.javac.Main introuvable lors de la tentative de compilation du programme Hadoop
Lorsque j'essaie de compiler mon programme dans Hadoop avec cette commande
bin/hadoop com.sun.tools.javac.Main WordCounter.java
de Hadoop dossier, il est dit
Error: Could not find or load main class com.sun.tools.javac.Main
J'ai regardé dans les mêmes discussions où les gens les suggéré de vérifier si JAVA_HOME
est correctement indiqué. Ainsi, dans etc/hadoop/hadoop-env.sh
j'ai ajouté cette ligne
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
ensuite vérifié si tools.pack
est bien décompressé dans /usr/lib/jvm/java-7-openjdk-amd64/lib
et il a été. Ensuite, j'ai essayé javac -version
qui a donné
javac 1.7.0_65
J'ai essayé de réinstaller Java mais elle ne résout pas le problème.
source d'informationauteur Kudayar Pirimbaev
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre HADOOP_CLASSPATH variable d'environnement
L'erreur signifie que vous n'avez pas utiliser un JDK pour commencer à Hadoop. La principale différence entre le JRE (pur moment de l'exécution) et le JDK est le compilateur Java
javac
. Pour voir si vous avez un compilateur Java, vous devez vérifier deux endroits: Il devrait y avoir unjavac
dans le$JAVA_HOME/bin
dossier de plus il doit y avoir un fichier$JAVA_HOME/lib/tools.jar
.Dans votre cas, le premier (le binaire pour lancer le compilateur) peuvent être manquantes, mais vous avez absolument besoin de la
tools.jar
.Vous dire que vous avez un
tools.pack
mais je n'ai pas entendu parler de celui-ci avant. Utilisez votre gestionnaire de paquets de la recherche pouropenjdk
et ensuite chercher un paquet dans la liste de résultats qui ditjdk
. Sur mon système, qui seraitopenjdk-7-jdk
. Installez ce paquet et le message d'erreur devrait disparaître.