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?
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>
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).
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.
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>
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>
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é..
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.
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
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.
j'utilise ci-dessous dans mon projet MR.
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
, 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
Ok, si vous utilisez Windows OS
-
go to C:\Program fichiers\Java\jdk1.8.0_40\lib (la Version jdk pourrait être différente pour vous)
-
assurez-vous que les outils.jar est présent (sinon téléchargez le)
-
copier ce chemin "C:\Program fichiers\Java\jdk1.8.0_40"
-
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>
-
reconstruire et courir! BINGO!