Tuve el mismo problema en una máquina Linux. Al principio estaba bastante frustrado porque instalé JDK y JRE. Estoy usando la versión 1.6, 1.7 y 1.8 simultáneamente, y he jugado mucho con las alternativas para tener todo configurado correctamente.
El problema fue bastante estúpido de resolver, pero contradictorio. Mientras usaba el JDK correcto, presté atención a la ruta de las herramientas de las que se quejaba Jar Maven, esperaba que fuera
$JAVA_HOME\..\lib\tools.jar
La $JAVA_HOME
variable apuntaba directamente a mi jdk
carpeta ( /usr/local/java
que también era la $PATH
entrada correcta y el enlace simbólico alternativo). Realmente busca la lib
carpeta fuera del directorio de Java, porque:
$JAVA_HOME\..\lib\tools.jar
resolverá a
/usr/local/lib/tools.jar
y esa no es una ubicación válida.
Para resolver esto, la $JAVA_HOME
variable debería apuntar a esta ubicación /usr/local/java/jre
(suponiendo que la ruta JDK es /usr/local/java
): en realidad hay una jre
carpeta dentro del directorio de instalación de JDK, que viene con cada JDK. Esta nueva configuración hará que Maven vea el directorio JRE, que es parte del JDK:
$JAVA_HOME\..\lib\tools
que ahora resuelve a
/usr/local/java/jre/../lib/tools.jar
y finalmente a
/usr/local/java/lib/tools.jar
que es donde tools.jar
reside realmente.
Entonces, incluso si está utilizando el JDK en lugar del JRE, $ JAVA_HOME tiene que apuntar al JRE. Recuerde, la alternativa del sistema operativo aún debe referirse al JDK.