Impossible de localiser tools.jar


182

Je construis un projet en Java.

J'ai cette erreur:

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

J'ai installé un JDK et le dossier: C:\Program Files\Java\jre6\libest dans mon système mais le fichier tools.jarn'y est pas.


Je pense que les outils appartiennent au JDK et non au JRE. N'est-ce pas? C: \ Program Files \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo

4
Soit dit en passant, ce que je trouve étonnant, c'est que le programme a en fait indiqué où il se trouvait. Si peu de programmes fournissent cet indice utile.
Peter Flynn

Voir également la question en double: stackoverflow.com/q/9119479/3328979 Les réponses sont en quelque sorte meilleures qu'ici.
Arashsoft

Réponses:


188

Oui, vous avez téléchargé et installé Java Runtime Environment (JRE) au lieu du Java Development Kit (JDK). Ce dernier a les tools.jar, java.exe, javac.exe, etc.


7
@olidev vérifie cela maintenant mais n'arrête toujours pas de signaler le problème !! Comment cela peut-il être votre réponse? Vous avez déjà mentionné que vous avez installé jdk et jre. Je suis en fait confronté à un problème similaire et il continue toujours :-(. Besoin de savoir comment vous l'avez fait fonctionner ??
Mercenaire

7
Ajoutez JAVA_HOME et le répertoire / bin à votre chemin. Vous vous rendez compte que cette réponse date de deux ans, non?
duffymo

17
Dans ubuntu: # apt-get install default-jdket l'erreur disparaît.
Xavi Montero

2
La clé? JDK. C'est ce qui a les outils. JRE ne le fait pas.
duffymo

2
Pas nécessairement. Il me semble qu'ils auraient pu se JAVA_HOMEplacer à l' jreintérieur du jdkplutôt qu'à jdklui - même.
ArtOfWarfare

88

Au cas où ce serait encore un problème pour qui que ce soit, j'ai un peu de clarification sur les réponses précédentes. Je rencontrais le même problème en utilisant une fourmi avec seulement un JDK installé. Cependant, le programme d'installation JDK m'a donné une structure de répertoires comme celle-ci:

 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

et quand j'ai couru fourmi, il s'est plaint de ne pas trouver tools.jar dans le sous-répertoire jre7. Ce n'est que moi set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"que l'erreur a disparu.


7
ce. Merci! (pour ceux d'entre nous qui ont plusieurs versions de jre / jdk installées)
Daren Thomas

cela a fonctionné pour moi ... plus tôt, j'ai donné le chemin avec \ bin aussi ... c'était le problème
John

Merci, j'aimerais pouvoir vous donner 2 ups!
Luke

38
  1. Installez le SDK Java .

  2. Ajoutez une variable d'environnement système appelée JAVA_HOME avec la valeur de l'emplacement JDK.
    Accédez à Panneau de configuration \ Système et sécurité \ Système. Paramètres système avancés, variables d'environnement, variables système, nouveau ... Exemple:
    Nom de la variable: JAVA_HOME
    Valeur de la variable: C: \ Program Files \ Java \ jdk1.7.0_21

  3. Fermez / rouvrez votre fenêtre CMD afin que la nouvelle variable prenne effet avant de tenter de réexécuter la commande ant.


4
La variable JAVA_HOME a tout corrigé, merci beaucoup :)
krinn

4
PATH avec /bin , JAVA_HOME sans /bin
Daniel W.

1
Merci, j'attendais ça pendant des heures !!
kcho0

1
Travaillez comme du charme sur Windows8.1
Umar Abbas

FONCTIONNE COMME UN CHARME !! MERCI
Heidi

28

J'ai eu le même problème et la copie C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar à C:\Program Files\Java\jre6\lib\ext travaillé pour moi


4
Des installations locales polluantes avec des classes qui n'y appartiennent manifestement pas peuvent conduire au syndrome Works on my machine. C'est même si un processus de construction formel est en place. tools.jar, qui contient des classes non essentielles pour la prise en charge des outils et utilitaires dans le JDK
real_paul

10

Définissez votre JAVA_HOMEvariable d'environnement sur laquelle pointer C:\Program Files\Java\jdk1.7.0_02.


10

Si vous êtes sous Linux, vous pouvez résoudre ce problème en installant java sur le système:

sudo apt-get install openjdk-7-jdk openjdk-7-jre

Évidemment, vous pouvez utiliser 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' pour Java 8
schlenger

7

Non, selon votre structure de répertoires, vous avez installé un JRE, pas un JDK. Il y a une différence.

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

Cela devrait être quelque chose comme:

C:\Program Files\Java\jdk1.6.0_24

Oui, tu as raison! mais comment puis-je désinstaller jre? merci d'avance
olidev

Démarrer> Panneau de configuration> Logiciel (ou similaire, selon la version de Win *)
Sean Patrick Floyd

mais il n'y a pas d'option comme celle-là pour supprimer jre. Je viens de vérifier!
olidev

@Joesy OK, si vous ne le trouvez pas, laissez-le simplement, il n'est pas nécessaire de le désinstaller (sauf pour récupérer de l'espace disque). Vous pouvez avoir de nombreux JDK et / ou JRE installés en parallèle
Sean Patrick Floyd


5

Ne passez pas trop de temps à chercher tools.jar. Si vous obtenez une erreur comme celle-là, ne vous inquiétez pas.

Si vous avez déjà java JDK 1.5, allez dans votre libdossier et le tools.jardevrait y être disponible. Copiez-le et collez-le dans votre bindossier ant , puis essayez d'utiliser la commande ant -version.

Vous devriez voir le résultat attendu.


2
cette approche est-elle recommandable?
S_M

4

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_HOMEvariable pointait directement vers mon jdkdossier ( /usr/local/javaqui était également l' $PATHentrée correcte et le lien sym alternatif). Il recherche en fait le libdossier 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_HOMEvariable 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 jredossier 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.jarré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.


1
J'ai eu le même problème avec Windows, utilisez-vous pour résoudre mon problème.
Yigang Wu

J'ai essayé tout cela et j'ai toujours le problème avec tools.jar. Randoop en vaut-il la peine? Cela signifie-t-il qu'il génère des tests unitaires décents? La partie frustrante de ceci est que TOUS les autres programmes java sur ma boîte Windows fonctionnent correctement.
Mr Smith

@MrSmith, Quel est le chemin que Randoop recherche lorsque vous recevez l'erreur. Peut-être que Randoop a son propre paramètre d'environnement qui lui indique où se trouve le JRE? De plus, avez-vous rouvert vos fenêtres shell (si vous exécutez depuis le shell) après avoir modifié vos variables d'environnement?
Ivaylo Slavov

3

allez sur votre chemin jdk où vous avez installé votre java

Par exemple, dans mon PC JDK installé dans le chemin suivant

"C: \ Program Files \ Java \ jdk1.7.0_17 \";

Après aller dans le dossier lib, par exemple "C: \ Program Files \ Java \ jdk1.7.0_17 \ lib"

dans le répertoire lib il y a le fichier tool.jar

Copiez ce fichier et collez-le dans le répertoire lib forlder du répertoire jre7 pour eg

"C: \ Program Files \ Java \ jre7 \ lib"


2

J'ai eu le même problème même après avoir installé Java JDK et réglé JAVA_HOMEsur ..\jdk1.6.0_45\bindossier.

Ant essaie toujours de trouver tools.jardans le C:\Program Files\Java\jre6\libdossier.
Je l'ai corrigé en ajoutant JAVACMDune variable d'environnement et en définissant son chemin java.exedans le jdkdossier.
Dans mon cas, c'étaitC:\Program Files\Java\jdk1.6.0_45\bin\java.exe


2

Vous pouvez rencontrer un problème similaire sur Ubuntu:

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

Le problème vient de JAVA_HOME qui n'est pas défini correctement.

Ainsi, sur Ubuntu 14.04 x64 en utilisant Java8:

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

2

il a été résolu avec moi dans le système d'exploitation Windows en définissant la variable JAVA_HOME avant de s'exécuter comme suit:

set JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_111


J'ai dû forcer cela. Ant 10+ recherche le JDK dans une variable inconnue. Je ne pouvais pas trouver où il obtenait le JDK, mais quand je peux en ligne de commande et forcé JAVA HOME, cela a fonctionné.
Cummings

2

Comme beaucoup de gens l'ont mentionné, il semble que vous recherchez dans votre JRE au lieu du JDK le fichier tools.jar.

Je voudrais également mentionner que sur les versions récentes du JDK, il n'y a plus de fichier tools.jar. J'ai téléchargé le JDK le plus récent à ce jour (JDK version 12) et je n'ai trouvé aucun tool.jar. J'ai dû télécharger JDK version 8 (1.8.0) ici https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html pour obtenir le fichier tools.jar. J'ai téléchargé cette version, pris le fichier tools.jar et l'ai mis dans le dossier lib de ma version récente.


1

Assurez-vous que les chemins% JAVA_HOME% et% JAVA_HOME% / bin sont ajoutés à votre variable PATH.

Toutes les réponses sur la copie de tools.jar dans la bonne position est au mieux une mauvaise idée.

Assurez-vous que votre IDE peut trouver ces fichiers de la manière dont il a été conçu et prévu.


1

Dans la fenêtre éclipse> préférences> Java> JRE installé, j'ai pointé le répertoire vers le répertoire jre dans le jdk 1.7 et j'ai travaillé le fichier pour moi, par exemple C: \ Program Files \ Java \ jdk1.7.0_71 \ jre


1

J'avais mon JDK_path ( C:\Program Files\Java\jdk1.7.0_79) dans mon JAVA_HOMEet aussi le JDK_path \ bin dans monPATH . Mais, ma fourmi utilisait toujours le JRE au lieu de JDK.

Le problème était que j'avais C:\ProgramData\Oracle\Java\javapathavant mon JDK_path dans la PATHvariable. J'ai simplement déplacé mon JDK_path avant l'oracle et le problème est résolu.


1

résolution de ce problème J'ai simplement copié le fichier tools.jar de C: \ Program Files \ Java \ jre1.8.0_112 \ lib vers C: \ Program Files \ Java \ jdk1.8.0_112 \ lib afin d'avoir deux tools.jar fichiers au lieu d'un et le problème a disparu.


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

si vous avez installé jdk alors

..Java/jdkx.x.x

le dossier doit exister là-bas, donc en le stall et donnez le chemin complet comme

C:\Program Files\Java\jdk1.6.0\lib\tools.jar

0

Assurez-vous que votre chemin de classe est correctement défini et pointe vers la version correcte du JDK que vous avez installé. De plus, utilisez-vous Open JDK? J'ai déjà eu ce problème après avoir essayé de passer du JDK ouvert au JDK Suns. Voici un exemple de la façon dont ce problème pourrait être résolu.


0

maven-compiler-plugin utilise jdk, pas jre, tools.jar est dans C: \ Program Files \ Java \ jdk1.6.0 \ lib \ tools.jar vous devez configurer le projet JRE System Libary avec jdk, pas jar. C'est la solution la plus simple.


0
  • Faites un clic droit sur votre fichier de fourmi
  • Allez dans "Exécuter en tant que" puis cliquez sur "Ant Build ..."
  • Allez dans l'onglet "JRE"
  • Sélectionnez un JDK et non un JRE

0

Pour moi, ce qui fonctionne: j'ai téléchargé une ancienne version de Java 1.7

En fait, j'ai défini mon JAVA_HOME à partir de C: / program files X86 / Java MAIS après avoir installé la version 1.7, j'avais un autre Java dans les fichiers programme / Java. Et à ce moment, j'ai trouvé le tools.jar ici. Puis j'ai changé pour ce nouveau chemin et ça marche


0

J'étais également confronté à la même erreur. Cela a été supprimé après avoir défini le chemin Java_Home sur C: \ Program Files \ Java \ jdk1.8.0_121. Veuillez vous assurer que bin n'est pas inclus dans le chemin et qu'il n'y a pas de barre oblique après jdk1.8.0_121 après avoir défini% JAVA_HOME% \ bin dans la variable de chemin système.


0

Si vous êtes dans un environnement RHEL, le nom du package contenant tools.jar se terminerait par "openjdk-devel".


0

Voici la solution pour Windows: dans Ordinateur> Paramètres système avancés> Avancé> Variables d'environnement ... , ajoutez ceci dans Variables système :

entrez la description de l'image ici


0

J'ai téléchargé tools.jar et après cela je l'ai copié dans le chemin dans le message d'erreur.

C: \ Program Files \ Java \ jdk-11.0.1 \ bin> collez ici tools.jar

Après cela, j'ai redémarré Spring Tool Suit 4 et tout fonctionnait. Quand j'essayais de résoudre ce problème, j'ai créé une nouvelle variable d'environnement: Panneau de configuration / Système / Avancé / Variables environnementales / nouveau nom: JAVA_HOME Valeur: C: \ Program Files \ Java \ jdk-11.0.1 Mais je ne sais pas c'est c'est nécessaire.


0

peut-être avez-vous mis à jour les JRE dans l'OS, et l'ajout a ajouté dans le "chemin" des variables d'environnement une entrée "... / Oracle / jer" qui écrase votre JAVA_HOME. essayez de le supprimer du "chemin" en quittant JAVA_HOME.


0

Si cela aide, le problème pour moi était que j'avais 2 entrées dans ma variable d'environnement PATH qui pointaient vers un emplacement contenant l'exécutable javaw.

J'ai nettoyé la variable pour m'assurer que "% JAVA_HOME% \ bin" était la seule entrée faisant référence à un emplacement contenant mes exécutables java.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.