web-dev-qa-db-fra.com

Tools.jar manquant dans le référentiel local casse m2eclipse

Le problème que je rencontre est qu'Eclipse ne peut résoudre aucune des dépendances de mon projet. Cela pose des problèmes car même si les dépendances semblent fonctionner correctement lors du codage (je reçois une complétion automatique), je reçois quand même une énorme liste d’erreurs faisant référence à des artefacts manquants.

En les filtrant, j'ai trouvé ce qui suit:

Le conteneur 'Maven Dependencies' fait référence à une bibliothèque non existante '/home/[...]/.m2/repository/com/Sun/tools/1.5.0/tools-1.5.0.jar'

Il semble que cette dépendance ait été introduite par struts2, qui a un profil configuré comme suit dans son pom:

<dependency>
    <groupId>com.Sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.5.0</version>
    <scope>system</scope>
    <systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>

Ce chemin système est résolu et je ne vois donc pas pourquoi cela causerait des problèmes. Dans tous les cas, y a-t-il un moyen de dire à Eclipse que cette dépendance m2Eclipse est une dépendance système qui ne se trouve pas dans le référentiel local?

15
wds

Je faisais face au même problème et devais faire les choses suivantes

  • Ajouté -vm chemin/vers/jdk/bin dans Eclipse.ini fichier
  • Nettoyez l'espace de travail existant et rechargez le projet.

Cela a fonctionné pour moi de manière transparente. 

Cela vaut la peine d'ajouter que, dans mon fichier Eclipse.ini, j'ai dû ajouter les lignes -vm ... en haut du fichier. comme 

-vm
C:\Program Files\Java\jdk1.6.0_27\bin
... ... ...

Assurez-vous que l'option -vm est placée avant -vmargs car tout ce qui suit après -vmargs est passé directement à vm et que la sélection d'un élément particulier dépend de l'option -vm. 

21
Samiron

J'ai eu ce problème, mais j'ai résolu en utilisant les étapes ci-dessous:

Cas 1:

Eclipse par défaut pointant sur JRE mais le plugin Eclipse maven nécessitait JDK, donc pointez sur JDK

Fenêtre -> Preperences -> Java -> JRE installés

changez-le en JDK

Suivez les étapes pour passer de JRE à JDK

  1. Dans Eclipse IDE, allez à: Fenêtre… Préférences… JRE installés
  2. Sélectionnez JRE par défaut et cliquez sur Modifier.
  3. Cliquez sur Ajouter un pot externe
  4. J'ai trouvé tools.jar dans “C:\Program Files\Java\jdk1.6.0_22\lib” et ajouté.

Maintenant, je peux construire mon projet sans aucun problème. Est-ce la bonne façon de résoudre ce problème?

9

exclut les outils jar de la dépendance des entretoises.

<exclusions>
    <exclusion>
        <groupId>com.Sun</groupId>
        <artifactId>tools</artifactId>
    </exclusion>
</exclusions>
5
Sudheera

J'ai eu le même problème - Eclipse n'a pas pu trouver un fichier tools.jar. Comme je l'ai découvert, c'est parce qu'Eclipse a utilisé un JRE et non un JDK. Vous devez ajouter un paramètre -vm à Eclipse.ini qui pointe vers votre répertoire bin JDK: 
... 
- vm 
path_to_jdk\bin 
...

Cela devrait résoudre le problème.

5
Eugene

Téléchargez http://repository.ops4j.org/maven2/tools/tools/1.5.0/ Et placez le pot dans le C:\Documents and Settings\Administrador\.m2\repository\com\Sun\tools\1.5.0. Bonne chance.

3
user1396892

Vous devez vérifier qu'Eclipse est à l'aide des installations JDK .

Dans Eclipse IDE, accédez à Window/Preferences/Java/Installed JREs Pointe vers une installation JDK.

Par exemple: C:\Program Files (x86)\Java\jdk1.6.0_37

3
Mojtaba

J'ai lu ceci et essayé diverses choses. Voici ce qui a fonctionné pour moi: j'ai modifié les fenêtres -> préférences -> Java -> JRE installés pour qu'ils pointent vers le JDK. Cela a résolu ce problème. 

2
Ranga Nathan
<dependency>
   <groupId>com.Sun</groupId>
   <artifactId>tools</artifactId>
   <version>1.6.0</version>
   <scope>system</scope>
   <systemPath>${env.Java_HOME}/lib/tools.jar</systemPath>
 </dependency>

Ajoutez simplement ceci. Ça va marcher.

1
zorze

Aussi étrange que cela puisse paraître, j'ai résolu ce problème en effectuant une nouvelle synchronisation avec le référentiel SVN.

Le problème, c’est que j’ai pris tout l’espace de travail d’un autre ordinateur. Par conséquent, lorsque j’ai importé le projet maven à l’aide du plug-in m2e, il se peut que certaines dépendances ne se synchronisent pas correctement.

Je poste ceci juste au cas où quelqu'un est désespéré avec cette erreur et essaie toutes les possibilités.

1
Edu Castrillon

J'ai également eu un problème similaire et je l'ai corrigé de la manière suivante. Accédez au répertoire lib du chemin d'installation JDK dans la commande Invite. Exécutez la commande ci-dessous pour installer pour installer tools.jar.

$mvn install:install-file -DgroupId=Sun.jdk -DartifactId=tools \
     -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar
1
Paramesh Korrakuti

Dans chaque projet que vous importez dans Eclipse, Eclipse crée des fichiers sur le système de fichiers - .project, .classpath, un dossier .settings ,. Il semble qu'Eclipse ne les mette pas à jour correctement.

Supprimez-les et importez-les à nouveau. 

De toute évidence, cette solution de contournement ne fonctionnera pas s'il s'agit de votre première importation et que vous avez déjà obtenu certains problèmes. Que regarder ici Maven2: artefact manquant mais les bocaux sont en place

1
Amio.io

Cette dépendance devrait fonctionner comme prévu. En cas de doute, essayez la version en ligne de commande de Maven, car le plug-in Eclipse est très fragile en termes de résolution des dépendances.

Contrairement à d'autres parties d'Eclipse, il est impossible de créer un chemin d'accès aux classes même partiel pour la construction si quelque chose ne va pas avec le POM. Par conséquent, l'erreur pourrait être autre chose.

Si tout échoue, essayez de installer le fichier dans votre référentiel local, afin de voir l'erreur suivante. 

0
Aaron Digulla

Pour les utilisateurs de Mac

[1] Pour savoir où votre VM est saisi, tapez ceci /Usr/libexec/Java_home

[2] vi ./Eclipse.app/Contents/MacOS/Eclipse.ini

[3]
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/ 
-vmargs ........ ........

[4] Dans Eclipse, mettez à jour Maven. 

[5] Chantez tout est bien :-) 

0
Sanjay Subramanian

J'ai finalement trouvé ce qui le causait. Apparemment, c'est un bogue de m2Eclipse lorsque vous utilisez les référentiels maven1. Il me restait le référentiel Java.net maven1 dans mon pom; après l'avoir désactivé, tout fonctionne à nouveau. Un problème très ennuyant à traquer car au final cela n’a rien à voir avec la recherche du pot à outils.

0
wds

Ce problème est dû à une mauvaise configuration Java. chaque IDE nécessite un pack JDK complet. becuase tools.jar disponible dans JDK lib pas jre lib 

  1. accédez au panneau de configuration, puis modifiez la variable de chemin d’environnement en C:\Program Files\Java\jdk1.8.0_31\jre\bin.

  2. remplacez Java_HOME par C:\Program Files\Java\jdk1.8.0_31.

  3. ouvrez IDE (Eclipse ou STS), changez la bibliothèque système JRE en C:\Program Files\Java\jdk1.8.0_31.

puis redémarrez IDE. ça va marcher 

0
sampath peyyila

J'ai eu le même problème plusieurs fois et je pouvais le résoudre en deux étapes:

  1. J'ai ajouté "-vm C: \\ bin" à Eclipse.ini ou au lien à partir duquel je lance Eclipse. 
  2. Après avoir rencontré ce problème à plusieurs reprises, j'ai commencé à soupçonner qu'un cache m2Eclipse était rechargé après un certain temps (un jour ou deux). J'ai donc essayé une solution étrange: changer temporairement l'heure de l'ordinateur au lendemain et redémarrer Eclipse. ou fermer/nettoyer le projet et .... IL A TRAVAILLÉ !!! 

Je pourrais répéter le processus plusieurs fois avec succès. 

Une solution plus élégante (je n'ai pas encore eu la chance de l'essayer) pourrait consister à vider les caches m2Eclipse mentionnés dans https://stackoverflow.com/a/16444984

J'espère que cela aidera n'importe qui.

0
Jorge

Une solution de hacky qui a fonctionné pour moi:

Si m2e se plaint que le fichier JAR suivant ne se trouve pas dans le cache Maven (vous pouvez trouver le mauvais chemin dans le journal des erreurs du fichier pom ou dans la liste "Chemin de construction Java> Dépendances Maven"):

${HOME}/.m2/repository/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.pom

puis essayez la commande suivante (indiquez Java_VERSION_HERE pour un JDK installé, par exemple jdk1.8.0_191-AMD64, puis utilisez les deux sections de chemin après le .m2/repository/ ci-dessus pour déterminer la bonne variable groupId, puis remplacez 1.6 par la version que vous avez décrite par M2E - il peut être important ou non si le JDK que vous avez installé correspond à la version dont m2e se plaint):

mvn install:install-file -Dfile=/usr/Java/JAVA_VERSION_HERE/lib/tools.jar \
    -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6

Cette commande copie tools.jar à partir de votre JDK et le place dans le cache Maven, en créant également un fichier pom.xml pour pouvoir être utilisé par Maven.

0
Luke Hutchison