web-dev-qa-db-fra.com

Outils manquants-1.6.jar avec Eclipse et Maven

J'essaie de lancer un projet en utilisant Maven dans Eclipse, mais l'erreur suivante apparaît. Le tools.jar se trouve dans le dossier lib du JDK, mais tools-1.6.jar ne semble pas exister sur mon ordinateur. J'utilise le JDK 1.7 et mon Java_HOME pointe vers ce dossier (tout comme mon Eclipse.ini). Quelqu'un sait où je peux obtenir ce fichier ou ce que je risque de ne pas bien faire?

Le conteneur 'Maven Dependencies' fait référence à une bibliothèque non existante C:\Users\sejohnson\.m2\repository\com\Sun\tools\1.6\tools-1.6.jar

13
Soren Johnson

Le fichier tools-x.y.z.jar doit être fourni par votre JDK.

Assurez-vous qu'Eclipse est exécuté par JDK et non par JRE en ajoutant l'option -vm dans Eclipse.ini.

Par exemple:

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

Une nouvelle ligne après -vm est cruciale.

il devrait être juste au-dessus

-vmargs

Voir aussi Problème de configuration du plug-in Eclipse Maven

15
Brimstedt

J'ai eu exactement le même problème et j'ai fini par ajouter la dépendance suivante au fichier pom:

    <dependency>
        <groupId>jdk.tools</groupId>
        <artifactId>jdk.tools</artifactId>
        <version>${Java.version}</version>
        <scope>system</scope>
        <systemPath>${Java_HOME}/lib/tools.jar</systemPath>
    </dependency>

Cela a résolu le problème et rendu tools.jar disponible pour le plug-in QueryDSL dans mon projet. J'espère que cela t'aides. Remarque: assurez-vous que la version de JDK est utilisée à la place de JRE.

Edit: Récemment noté ce problème est réapparu lorsque je suis passé sur une nouvelle plate-forme de développement, dans mon cas c’était Ubuntu 12.10. Le correctif consistait à ajouter ${Java_HOME}/bin au $PATH

13
pilot

Il se peut que votre Eclipse utilise par défaut votre version 32 bits de votre jre. Si vous faites tout correctement avec Java_HOME défini sur C:\Program Files\Java\jdk1.6.0_21\bin et que vous exécutez une version 32 bits d’Eclipse, vous finirez par utiliser quelque chose comme C:\Program Files (x86)\Java \. jre6\bin.

une fois le problème jdk résolu, vous devrez le transmettre à la fin du raccourci -vm "C:\Program Files (x86)\Java\jdk1.6.0_31\bin".

Ou réparer votre Java_HOME

D'autres suggestions ont été faites pour vous assurer que votre Eclipse utilise le jdk pas jre http://gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE .aspx

Vous trouverez une autre publication si vous effectuez une recherche dans tools.jar ou si vous lisez un autre projet présentant le même problème de dépendance maven.

5
Josh

Le tools.jar n'est fourni dans aucun référentiel public (comme je le sais). Si votre pom.xml fait référence à un fichier de votre référentiel local, vous devez l’installer vous-même. Le fichier pom.xml que vous utilisez suppose apparemment que quelqu'un a créé/installé un fichier tools-1.6.jar dans un référentiel Maven accessible (par exemple, à un gestionnaire de référentiel maven central de la société tel que Nexus ).

Si cela ne vous convient pas, essayez de modifier la dépendance comme expliqué dans la section Maven FAQ .

1
FrVaBe

J'ai eu le même problème et il s'est avéré qu'une des dépendances de mon fichier POM ajoutait de manière transitoire la dépendance au fichier jdk.tools dont je n'avais pas besoin (et qui causait des problèmes avec le plugin Eclipse Maven). Ma solution était de l'exclure de la dépendance problématique comme ceci:

<dependency>
  <groupId>it.unimi.di</groupId>
  <artifactId>mg4j-big</artifactId>
  <version>${mg4j-big.version}</version>
  <exclusions>
    <exclusion>
      <groupId>jdk.tools</groupId>
      <artifactId>jdk.tools</artifactId>
    </exclusion>
  </exclusions>
</dependency>

Essayez de rechercher la dépendance qui importe transitoirement le fichier jdk.tools et excluez-la comme je l’ai fait ci-dessus. Cela devrait résoudre votre problème.

1
ametke

Pouvez-vous vérifier votre pom.xml pour les dépendances autour des outils? Mvnrepository.com est une bonne source. Enfin, votre projet est-il compilé en dehors d’eclipse? Est-ce que mvn clean compile fonctionne dans une boîte à dos ou un shell? Si c'est le cas, il vous suffira peut-être de régénérer les fichiers du projet Eclipse avec mvn Eclipse:eclipse, puis actualisez votre projet dans Eclipse.

1
eon

Voici une autre option si vous rencontrez ce problème de construction. J'ai eu le même problème de construction et j'ai essayé toutes les suggestions ci-dessus et le problème était toujours là. Ensuite, j'ai remarqué que le premier élément de mon chemin système était "C:\ProgramData\Oracle\Java\javapath".

Je ne sais pas quel programme l'a installé. Et quand j'ai vérifié le dossier, il n'y avait que quelques liens (raccourcis). J'ai supprimé cela du chemin système et l'erreur de génération a été résolue. J'espère que cela aide quelqu'un d'autre dans la même situation.

0

Echo @Gopal Ramakrishnan. J'ai eu le même problème dans le chemin env (Windows OS). Il contient "C:\ProgramData\Oracle\Java\javapath" dans lequel Java.exe a eu un impact sur le chemin d'accès au jdk lors du démarrage d'Eclipse. Supprimez simplement que résolu le problème. Je suis à peu près sûr que "C:\ProgramData\Oracle\Java\javapath" a été ajouté discrètement par Oracle "développeur SQL" ...

0
lingdl

Ayant le même problème, j'ai dû ajouter manuellement le fichier tools.jar dans Eclipse: Préférences -> Java -> JRE installés -> Sélectionnez jre -> Édition -> Ajouter des JAR externes -> Recherchez et sélectionnez tools.jar -> Fin. Maintenant ça marche.

0
Berit Larsen

En plus de tout ce qui précède, ce qui pourrait signifier différentes étapes pour diagnostiquer le problème et fournir finalement une solution appropriée, je commencerais par vérifier une ligne de commande (c'est-à-dire en dehors du temps d'exécution d'Eclipse). Effectuer une 'installation propre de MVN' à partir d’une ligne de commande vous donnerait ce qui suit:

  1. La certitude que vous avez correctement défini les exécutables Java (car ils sont les valeurs par défaut utilisées par toutes les applications Java, y compris bien sûr Eclipse,
  2. La certitude que votre version de maven résout correctement l'exigence tools * .jar via le provisioning JDK

En utilisant ces deux faits, vous pouvez éliminer les problèmes liés à l'installation de Java et aux niveaux d'installation de Maven. Ensuite, vous pouvez faire en sorte qu'Eclipse utilise les mêmes paramètres que vous pouvez utiliser (Java JDK HOME, MAVEN HOME) dans une ligne de commande, comme l'expliquent les autres réponses ci-dessus avec de bons détails (en particulier brimstedt et josh's ).

0
RickB

Dans mon cas, il s’est avéré que j’avais cette dépendance dans le fichier pom.xml

<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>

Cependant, Java_HOME a été défini au démarrage d’Eclipse sur un JRE au lieu d’un JDK .

Donc, le fichier tools.jar n’existait pas pour cette raison