J'ai eu le même problème sur une machine Linux. J'étais assez frustré au début, car j'ai installé à la fois le JDK et le JRE. J'utilise simultanément les versions 1.6, 1.7 et 1.8, et j'ai beaucoup joué avec les alternatives pour que tout soit réglé correctement.
Le problème était assez stupide à résoudre, mais contre-intuitif. Pendant que j'utilisais le bon JDK, j'ai prêté attention au chemin des outils dont jar maven se plaignait - il s'attendait à ce qu'il soit
$JAVA_HOME\..\lib\tools.jar
La $JAVA_HOME
variable pointait directement vers mon jdk
dossier ( /usr/local/java
qui était également l' $PATH
entrée correcte et le lien sym alternatif). Il recherche en fait le lib
dossier en dehors du répertoire java, car:
$JAVA_HOME\..\lib\tools.jar
se résoudra à
/usr/local/lib/tools.jar
et ce n'est pas un emplacement valide.
Pour résoudre ce problème, la $JAVA_HOME
variable doit plutôt pointer vers cet emplacement /usr/local/java/jre
(en supposant que le chemin JDK est /usr/local/java
) - il y a en fait un jre
dossier dans le répertoire d'installation JDK, fourni avec chaque JDK. Cette nouvelle configuration obligera maven à consulter le répertoire JRE, qui fait partie du JDK:
$JAVA_HOME\..\lib\tools
qui se résout maintenant à
/usr/local/java/jre/../lib/tools.jar
et enfin à
/usr/local/java/lib/tools.jar
qui est là où le tools.jar
réside vraiment.
Ainsi, même parmi vous utilisez effectivement le JDK au lieu du JRE, le $ JAVA_HOME doit pointer vers le JRE. N'oubliez pas que l'alternative au système d'exploitation doit toujours faire référence au JDK.