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.

olidev
la source
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.

duffymo
la source
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.

Blake Mitchell
la source
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.

James Lawruk
la source
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

Pantalon Kamlesh
la source
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.

Zorayr
la source
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
mimoralea
la source
É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
Sean Patrick Floyd
la source
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
7

Si vous avez installé JDK 9.0.1, vous aurez également ce problème car le tools.jar est obsolète. Voir le document de migration .

Graham Chiu
la source
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.

sathiya
la source
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.

Ivaylo Slavov
la source
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"

sandeep
la source
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

user3243105
la source
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
Sasha Zezulinsky
la source
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

Ramy Feteha
la source
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.

alt440
la source
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.

Jørgen Skår Fischer
la source
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

Vimal Basdeo
la source
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.

Arashsoft
la source
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.

estudiante
la source
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
Nirmal- ThInk BeYond
la source
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.

John Kane
la source
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.

living.li
la source
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
RotS
la source
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

Florent Giraud
la source
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.

Lentes
la source
0

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

Savoureux Blé
la source
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

Basj
la source
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.

astatyzm
la source
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.

Pagurix
la source
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.

GarethPN
la source