No se puede ubicar tools.jar

182

Estoy construyendo un proyecto en Java.

Tengo este error:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

He instalado un JDK y la carpeta: C:\Program Files\Java\jre6\libestá en mi sistema pero el archivo tools.jarno está allí.

olidev
fuente
Creo que las herramientas pertenecen al JDK, no al JRE. No es asi? C: \ Archivos de programa \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo
44
Por otro lado, lo que me parece sorprendente es que el programa realmente dijo dónde se veía. Muy pocos programas proporcionan esta pista útil.
Peter Flynn el
También vea la pregunta duplicada: stackoverflow.com/q/9119479/3328979 Las respuestas son de alguna manera mejores que aquí.
Arashsoft

Respuestas:

188

Sí, ha descargado e instalado Java Runtime Environment (JRE) en lugar del Kit de desarrollo de Java (JDK). Este último tiene tools.jar, java.exe, javac.exe, etc.

duffymo
fuente
77
¡@olidev está comprobando esto ahora pero todavía no puedo dejar de señalar el problema! ¿Cómo puede ser esta tu respuesta? Ya ha mencionado que ha instalado jdk y jre. En realidad estoy enfrentando un problema similar y todavía continúa :-(. ¿Necesito saber cómo lo hiciste funcionar?
Mercenary
77
Agregue JAVA_HOME y el directorio / bin a su ruta. Te das cuenta de que esta respuesta tiene dos años, ¿verdad?
duffymo
17
En ubuntu: # apt-get install default-jdky el error desaparece.
Xavi Montero
2
¿La clave? JDK Eso es lo que tiene las herramientas. JRE no lo hace.
duffymo
2
No necesariamente. Me parece que podrían haberse JAVA_HOMEcolocado en el jreinterior del jdklugar en lugar de en jdksí mismo.
ArtOfWarfare
88

En caso de que esto siga siendo un problema para alguien, tengo algunas aclaraciones sobre las respuestas anteriores. Me encontraba con este mismo problema usando ant con solo un JDK instalado. Aunque, el instalador JDK me dio una estructura de directorios como esta:

 Directory of C:\Program Files\Java

05/08/2012  09:43 AM    <DIR>          .
05/08/2012  09:43 AM    <DIR>          ..
05/08/2012  09:46 AM    <DIR>          jdk1.7.0_04
05/08/2012  09:19 AM    <DIR>          jre6
05/08/2012  09:44 AM    <DIR>          jre7
               0 File(s)              0 bytes

y cuando ejecuté ant, se quejó de no encontrar tools.jar bajo el subdirectorio jre7. No fue sino hasta set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"que el error desapareció.

Blake Mitchell
fuente
77
esta. ¡Gracias! (para aquellos de nosotros que tenemos varias versiones jre / jdk instaladas)
Daren Thomas
funcionó para mí ... antes di el camino con \ bin también ... ese era el problema
John
¡Gracias, desearía poder darte 2 ups!
Lucas
38
  1. Instale el SDK de Java .

  2. Agregue una variable de entorno del sistema llamada JAVA_HOME con el valor de la ubicación JDK.
    Vaya a Panel de control \ Sistema y seguridad \ Sistema. Configuración avanzada del sistema, Variables de entorno, Variables del sistema, Nuevo ... Ejemplo:
    Nombre de la variable: JAVA_HOME
    Valor de la variable: C: \ Archivos de programa \ Java \ jdk1.7.0_21

  3. Cierre / vuelva a abrir su ventana CMD para que la nueva variable surta efecto antes de intentar volver a ejecutar el comando ant.

James Lawruk
fuente
44
La variable JAVA_HOME solucionó todo, muchas gracias :)
krinn
44
PATH con /bin , JAVA_HOME sin /bin
Daniel W.
1
¡Gracias, estuve buscando esto por horas!
kcho0
1
Trabaja como encanto en Windows8.1
Umar Abbas
¡¡TRABAJAR COMO UN ENCANTO!! GRACIAS
Heidi
10

Establezca su JAVA_HOMEvariable ambiental para señalar C:\Program Files\Java\jdk1.7.0_02.

Zorayr
fuente
10

Si está en Linux, puede resolver esto instalando Java en el sistema:

sudo apt-get install openjdk-7-jdk openjdk-7-jre
mimoralea
fuente
Obviamente, puede usar 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' para Java 8
schlenger
7

No, de acuerdo con la estructura de su directorio, ha instalado un JRE, no un JDK. Hay una diferencia

C:\Program Files\Java\jre6\lib
                      ^^^^

Debería ser algo como:

C:\Program Files\Java\jdk1.6.0_24
Sean Patrick Floyd
fuente
¡Sí, tiene usted razón! pero ¿cómo puedo desinstalar jre? gracias de antemano
olidev
Inicio> Panel de control> Software (o similar, dependiendo de la versión Win *)
Sean Patrick Floyd
pero no hay una opción como esa para eliminar jre. ¡Acabo de verificar!
olidev
@Joesy OK, si no puedes encontrarlo, solo déjalo, no hay necesidad de desinstalarlo (excepto para recuperar espacio en disco). Puede tener muchos JDK y / o JRE instalados en paralelo
Sean Patrick Floyd
7

Si ha instalado JDK 9.0.1, también tendrá este problema, ya que tools.jar ha quedado en desuso. Ver documento de migración .

Graham Chiu
fuente
5

No pases demasiado tiempo buscando tools.jar. Si obtiene un error como ese, no se enoje.

Si ya tiene Java JDK 1.5, vaya a su libcarpeta, y tools.jardebería estar disponible allí. Cópielo y péguelo en su bincarpeta de hormigas , luego intente usar el comando ant -version.

Deberías ver el resultado esperado.

sathiya
fuente
2
¿Es recomendable este enfoque?
S_M
4

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_HOMEvariable apuntaba directamente a mi jdkcarpeta ( /usr/local/javaque también era la $PATHentrada correcta y el enlace simbólico alternativo). Realmente busca la libcarpeta 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_HOMEvariable debería apuntar a esta ubicación /usr/local/java/jre(suponiendo que la ruta JDK es /usr/local/java): en realidad hay una jrecarpeta 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.jarreside 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.

Ivaylo Slavov
fuente
1
Tengo el mismo problema con Windows, utilicé su forma de resolver mi problema.
Yigang Wu
He intentado todo esto y sigo teniendo el problema con tools.jar. ¿Randoop vale la pena? ¿Qué significa que genera pruebas unitarias decentes? La parte frustrante de esto es que CADA otro programa de Java en mi caja de Windows funciona bien.
Sr. Smith
@ MrSmith, ¿Cuál es el camino que busca Randoop cuando recibe el error? ¿Quizás Randoop tiene su propia configuración de env que le dice dónde está el JRE? Además, ¿volvió a abrir sus ventanas de shell (si se ejecuta desde shell) después de cambiar sus variables env?
Ivaylo Slavov
3

vaya a su ruta jdk donde instaló su java

Por ejemplo, en mi PC JDK instalado en la siguiente ruta

"C: \ Archivos de programa \ Java \ jdk1.7.0_17 \";

Después de ir a la carpeta lib, por ejemplo, "C: \ Archivos de programa \ Java \ jdk1.7.0_17 \ lib"

en el directorio lib hay un archivo tool.jar

Copie este archivo y péguelo en el directorio lib forlder del jre7 para, por ejemplo,

"C: \ Archivos de programa \ Java \ jre7 \ lib"

sandeep
fuente
2

Tuve el mismo problema incluso después de instalar Java JDK y configurarlo JAVA_HOMEen la ..\jdk1.6.0_45\bincarpeta.

Ant todavía está tratando de encontrar tools.jaren la C:\Program Files\Java\jre6\libcarpeta.
Lo arreglé agregando JAVACMDuna variable de entorno y establecí la ruta java.exeen la jdkcarpeta.
En mi caso fueC:\Program Files\Java\jdk1.6.0_45\bin\java.exe

usuario3243105
fuente
2

Puede enfrentar un problema similar en Ubuntu:

Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar

El problema es con JAVA_HOME que no está configurado correctamente.

Entonces, en Ubuntu 14.04 x64 usando Java8:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Sasha Zezulinsky
fuente
2

se resolvió conmigo en Windows OS configurando la variable JAVA_HOME antes de ejecutar lo siguiente:

establecer JAVA_HOME = C: \ Archivos de programa \ Java \ jdk1.8.0_111

Ramy Feteha
fuente
Tuve que forzar esto. Ant 10+ está buscando el JDK en una variable desconocida. No pude encontrar de dónde estaba obteniendo el JDK, pero cuando pude en la línea de comando y forcé a JAVA HOME funcionó.
Cummings
2

Como muchas personas mencionaron, parece que está buscando en su JRE en lugar de en el JDK el archivo tools.jar.

También me gustaría mencionar que en las versiones recientes de JDK, no hay más herramientas.jar archivo. Descargué el JDK más reciente a partir de hoy (JDK versión 12) y no pude encontrar herramientas.jar. Tuve que descargar la versión 8 de JDK (1.8.0) aquí https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html para obtener el archivo tools.jar. Descargué esa versión, tomé el archivo tools.jar y lo puse en la carpeta lib de mi versión más reciente.

alt440
fuente
1

Asegúrese de que las rutas% JAVA_HOME% y% JAVA_HOME% / bin se agreguen a su variable PATH.

Todas las respuestas sobre copiar tools.jar en la posición correcta son, en el mejor de los casos, una mala idea.

Asegúrese de que su IDE pueda encontrar estos frascos de la manera en que fueron diseñados y destinados.

Jørgen Skår Fischer
fuente
1

En la ventana de eclipse> preferencias> Java> JRE instalado, apunté el directorio al directorio jre en el jdk 1.7 y trabajé para mí, por ejemplo, C: \ Archivos de programa \ Java \ jdk1.7.0_71 \ jre

Vimal Basdeo
fuente
1

Tenía mi JDK_path ( C:\Program Files\Java\jdk1.7.0_79) en mi JAVA_HOMEy también el JDK_path \ bin en mi PATH. Pero, todavía mi hormiga estaba usando el JRE en lugar de JDK.

El problema era que tenía C:\ProgramData\Oracle\Java\javapathantes de mi JDK_path en PATHvariable. Simplemente moví mi JDK_path antes del oráculo y el problema se resolvió.

Arashsoft
fuente
1

Para resolver este problema, simplemente he copiado el archivo tools.jar de C: \ Archivos de programa \ Java \ jre1.8.0_112 \ lib a C: \ Archivos de programa \ Java \ jdk1.8.0_112 \ lib para tener dos herramientas.jar archivos en lugar de uno y el problema desapareció.

estudiante
fuente
0
Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

si ha instalado jdk entonces

..Java/jdkx.x.x

la carpeta debe existir allí, así que instálela y dé la ruta completa como

C:\Program Files\Java\jdk1.6.0\lib\tools.jar
Nirmal piensa más allá
fuente
0

Asegúrese de que su classpath esté configurado correctamente y apunte a la versión correcta del JDK que ha instalado. Además, ¿estás utilizando Open JDK? He tenido este problema antes después de que intenté pasar de JDK abierto a JDK de Suns. Este es un ejemplo de cómo se podría solucionar ese problema.

John Kane
fuente
0

maven-compiler-plugin usa jdk, no jre, tools.jar está en C: \ Archivos de programa \ Java \ jdk1.6.0 \ lib \ tools.jar debe configurar el proyecto JRE System Libary con jdk, no jar. Esta es la solución más simple.

living.li
fuente
0
  • Haga clic derecho en su archivo hormiga
  • Vaya a "Ejecutar como" y luego haga clic en "Ant Build ..."
  • Vaya a la pestaña "JRE"
  • Seleccione un JDK y no un JRE
RotS
fuente
0

Para mí lo que funciona: descargué una versión anterior de Java 1.7

De hecho, configuré mi JAVA_HOME desde C: / archivos de programa X86 / Java PERO después de instalar la versión 1.7 tuve otro Java en archivos de programa / Java. Y en este momento encontré el tools.jar aquí. Luego cambié por este nuevo camino y está funcionando

Florent Giraud
fuente
0

También estaba enfrentando el mismo error. Esto se eliminó después de configurar la ruta Java_Home en C: \ Archivos de programa \ Java \ jdk1.8.0_121. Asegúrese de que bin no esté incluido en la ruta y que no haya una barra inclinada después de jdk1.8.0_121 después de haber definido% JAVA_HOME% \ bin en la variable de ruta del sistema.

Liendres
fuente
0

Si se encuentra en un entorno RHEL, el nombre del paquete que contiene tools.jar terminaría con "openjdk-devel".

Trigo Sabroso
fuente
0

Esta es la solución para Windows: en Computadora> Configuración avanzada del sistema> Avanzado> Variables de entorno ... , agregue esto en Variables del sistema :

ingrese la descripción de la imagen aquí

Basj
fuente
0

He descargado tools.jar y después de eso lo copié en la ruta en mensaje de error.

C: \ Archivos de programa \ Java \ jdk-11.0.1 \ bin> pegue aquí tools.jar

Después de eso, reinicié Spring Tool Suit 4 y todo estaba funcionando. Cuando intentaba solucionar ese problema, hice una nueva variable ambiental: Panel de control / Sistema / Avanzado / Variables ambientales / nuevo Nombre: JAVA_HOME Valor: C: \ Archivos de programa \ Java \ jdk-11.0.1 Pero no sé si es necesario

astatyzm
fuente
0

tal vez haya actualizado los JRE en el sistema operativo, y la adición ha agregado en la "ruta" de las variables de entorno una entrada "... / Oracle / jer" que sobrescribe su JAVA_HOME. intente eliminarlo de la "ruta" dejando JAVA_HOME.

pagurix
fuente
0

En caso de que ayude, el problema para mí fue que tenía 2 entradas en mi variable de entorno PATH que apuntaban a una ubicación que contenía el ejecutable javaw.

Limpié la variable para asegurarme de que "% JAVA_HOME% \ bin" era la única entrada que hacía referencia a una ubicación que contenía mis ejecutables de Java.

GarethPN
fuente