2012-05-30 4 views
11

J'ai essayé de mvn install et a obtenu ce message:Impossible de trouver le compilateur Javac

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 une ouverture jdk, je téléchargé un autre. J'ai essayé de JAVA_HOME à la fois, il est maintenant établi:

J'ai aussi essayé
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03 
export JAVA_HOME 
PATH=$PATH:$JAVA_HOME/bin 
export PATH 

choisir un de ceux ouverts avec sudo update-alternatives --config java mais obtenu la même erreur avec les différentes versions de jdk en elle.

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

+0

Quelle est la sortie de "javac -version" et "quel javac"? – Korgen

+1

@Korgen Après le "javac -version" j'ai eu "Le programme 'javac' peut être trouvé dans les paquets suivants" et une suggestion pour installer l'un d'eux (bien, il y avait un jdk ouvert là qui est déjà installé). –

+1

Etes-vous connecté et reclassé depuis? – dbalakirev

Répondre

18

il semble que votre chemin n'est pas ramassé correctement ... est-ce que la sortie de "echo $ PATH" contient le répertoire où réside javac? Je suggère ce qui suit:

borne ouverte et faire une:

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éer 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 lever une course ... une alternative est d'essayer la mise en place java via votre système de gestion des paquets (par exemple "apt-get install java" ou équiv. similaire)

+0

Merci, maintenant je reçois la version javac, mais je reçois toujours l'échec de compilation –

+1

exécutez-vous maven de la même terminal comme où vous avez entré les lignes ci-dessus? Le message d'erreur mvn se réfère-t-il toujours au répertoire openjdk ou à /usr/lib/jvm/jdk1.7.0_03? – Korgen

+0

Voir les commentaires de la question, problème semble être résolu, mais merci quand même, je vais marquer cette réponse dès que c'est bon. –

0

J'ai fait face à une erreur similaire sur une machine ubuntu lors de l'exécution d'une build maven de Jenkins. Si la sortie de 'javac -version' invites ci-dessous les messages:

« Le programme 'javac' peut être inclus dans les forfaits suivants: default-jdk gcj-CEJ 5 jdk openjdk-8-jdk sans tête gcj-4.8-jdk gcj-4.9-jdk openjdk-9-jdk sans tête Essayez: apt install "

Ensuite, vous pouvez installer "openjdk-8-jdk sans tête" à l'aide:

apt installer openjdk-8-jdk-headless

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

Questions connexes