web-dev-qa-db-fra.com

Impossible de localiser le compilateur Javac

J'ai essayé de mvn install et a reçu ce message:

Compilation failure
Unable to locate the Javac Compiler in:
  /usr/lib/jvm/Java-7-openjdk-AMD64/jre/../lib/tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.Sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the Java_HOME environment variable.

Eh bien, il y a un jdk ouvert, j'en ai aussi téléchargé un autre. J'ai essayé de pointer Java_HOME vers les deux, maintenant il est défini:

Java_HOME=/usr/lib/jvm/jdk1.7.0_03
export Java_HOME
PATH=$PATH:$Java_HOME/bin
export PATH

J'ai également essayé de choisir l'un de ceux ouverts avec Sudo update-alternatives --config Java mais a la même erreur avec différentes versions de jdk.

Comment puis-je résoudre ce problème? Merci d'avance.

14
John Doe

il semble que votre PATH ne soit pas correctement récupéré ... la sortie de "echo $ PATH" contient-elle le répertoire où réside javac? Je suggérerais ce qui suit:

ouvrir le terminal et faire:

export Java_HOME=/usr/lib/jvm/jdk1.7.0_03
export PATH=$PATH:$Java_HOME/bin
javac -version
which javac

si javac -version ne fonctionne toujours pas, créez un lien symbolique dans/usr/local/bin pointant vers votre binaire javac:

cd /usr/local/bin
ln -s /usr/lib/jvm/jdk1.7.0_03/bin/javac javac

cela devrait vous permettre de démarrer ... une alternative est d'essayer de configurer Java via votre système de gestion de paquets (par exemple "apt-get install Java" ou quelque chose de similaire))

18
Korgen

J'ai rencontré une erreur similaire sur une machine Ubuntu lors de l'exécution d'une build Maven à partir de Jenkins. Si la sortie de 'javac -version' invite les messages ci-dessous:

"Le programme" javac "se trouve dans les packages suivants: default-jdk ecj gcj-5-jdk openjdk-8-jdk-headless gcj-4.8-jdk gcj-4.9-jdk openjdk-9-jdk-headless Essayez: apt installer "

Ensuite, vous pouvez installer "openjdk-8-jdk-headless" en utilisant:

installer apt openjdk-8-jdk-headless

Cela a résolu mon problème et la construction de maven s'est bien passée.

1
Yeamin Rajeev