Construire Hadoop avec un artefact Eclipse / Maven manquant jdk.outils:le jdk.outils:jar:1.6

je suis en train d'importer cloudera org.Apache.hadoop: hadoop-client: 2.0.0-cdh4.0.0 de cdh4 Maven repo dans un projet maven dans eclipse 3.81, M2E plugin, avec oracle JDK 1.7.0_05 sur win7 en utilisant

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.0.0-cdh4.0.0</version>
</dependency>

cependant, j'obtiens l'erreur suivante:

The container 'Maven Dependencies' references non existing library 'C:UsersMyUserId.m2repositoryjdktoolsjdk.tools.6jdk.tools-1.6.jar'

plus précisément, maven déclare que l'artefact suivant est manquant

Missing artifact jdk.tools:jdk.tools:jar:1.6

Comment faire résoudre ce problème?

68
demandé sur ROMANIA_engineer 2012-06-20 14:57:31

12 réponses

jdk.tools:jdk.tools (ou com.sun:tools , ou quel que soit son nom) est un fichier JAR distribué avec JDK. Habituellement, vous l'ajoutez à des projets maven comme celui-ci:

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <scope>system</scope>
    <systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>

Voir, la Maven FAQ pour l'ajout de dépendances à tools.jar

ou, vous pouvez installer manuellement tools.jar dans le dépôt local en utilisant:

mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true

et ensuite le référencer comme Cloudera l'a fait, en utilisant:

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.6</version>
</dependency>
87
répondu npe 2014-04-19 18:29:05

le problème est dans le support Eclipse Maven, la question connexe est ici .

sous Eclipse, la variable java.home est définie à la JRE qui a été utilisée pour démarrer Eclipse, et non à la build JRE. Le système par défaut JRE de C:\Program Files n'inclut pas le JDK donc tools.jar n'est pas trouvé.

pour corriger le problème, vous devez démarrer Eclipse en utilisant le JRE du JDK en ajoutant quelque chose comme ceci à eclipse.ini ( avant -vmargs !):

-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll

puis rafraîchir les dépendances Maven (Alt-F5) (juste rafraîchir le projet n'est pas suffisant).

95
répondu rustyx 2017-05-23 12:02:45

merci à npe, ajouter

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.7.0_05</version>
    <scope>system</scope>
    <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>

à pom.xml a fait l'affaire.

34
répondu jvataman 2012-06-20 11:14:07

cela a fonctionné pour moi:

dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.7.0_05</version>
    <scope>system</scope>
    <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
6
répondu Ravi Macha 2015-10-22 18:10:03

Si vous pouvez vivre sans outils.jar et il est seulement inclus comme une dépendance enchaînée, vous pouvez l'exclure du projet offensant:

<dependency>
    <groupId>org.apache.ambari</groupId>
    <artifactId>ambari-metrics-common</artifactId>
    <version>2.1.0.0</version>
    <exclusions>
        <exclusion>
            <artifactId>jdk.tools</artifactId>
            <groupId>jdk.tools</groupId>
        </exclusion>
    </exclusions>
</dependency>
6
répondu Adam LaStrange 2016-09-09 18:32:20

peut-être système Installer paquet jdk, mais peut-être certains outils de développement ou plugin.

je trouve ce problème sous opensuse env. et j'installe java-1_6_0-openjdk-devel

le problème est écarté..

0
répondu liuyang1 2014-03-12 15:18:07

j'ai également fait face à ce problème parce que je viens juste d'installer JRE pas avec JDK . Donc, ajouter dépendance pour jdk.outils ne peut pas fixer pour moi parce que outils.jar n'existait pas dans mon répertoire ${JAVA_HOME}/lib/ .

maintenant j'ai téléchargé et installé JDK pour le fixer.

0
répondu Cataclysm 2014-11-21 03:18:07

changez L'ensemble des JREs installés dans votre eclipse. Window > Preferences > Java > Installé Jre, modifier l'emplacement de jre à %JAVA_HOME% / jre, mais pas quelque chose comme C:\Program fichiers\Java\jre7

0
répondu Sondy Woo 2015-01-23 08:38:48

si le jdk.tools est présent dans l' .dépôt en m2. Vous obtenez toujours l'erreur quelque chose comme ceci:

artefact manquant: jdk.outils.....C.:../ jre/..

dans le buildpath->configure build path-->Libraries.Il suffit de changer la bibliothèque du système JRE de JRE à JDK.

0
répondu Divya Rakshu 2015-10-09 07:49:18

j'utilise ci-dessous dans mon projet MR.

<exclusions>
                <exclusion>
                    <artifactId>jdk.tools</artifactId>
                    <groupId>jdk.tools</groupId>
                </exclusion>
</exclusions>
0
répondu Suman 2016-04-26 22:44:00

, essayez :

mvn install:install-file-DgroupId=jdk.outils-DartifactId=jdk.outils-Dversion=1.6-Dpackaging=jar-Dfile = "C:\Program fichiers\Java\jdk\lib\tools.jar "

vérifier aussi : http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

0
répondu Yogesh Borkhade 2017-09-18 10:21:38

Ok, si vous utilisez Windows OS

  1. go to C:\Program fichiers\Java\jdk1.8.0_40\lib (la Version jdk pourrait être différente pour vous)

  2. assurez-vous que les outils.jar est présent (sinon téléchargez le)

  3. copier ce chemin "C:\Program fichiers\Java\jdk1.8.0_40"

  4. Dans le pom.xml

    <dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.8.0_40</version>
    <scope>system</scope>
    <systemPath>C:/Program Files/Java/jdk1.8.0_40/lib/tools.jar</systemPath>
    </dependency>
    
  5. reconstruire et courir! BINGO!

-3
répondu Lokesh 2015-07-20 12:53:23