Ich versuche, clouderas org.apache.hadoop: hadoop-client: 2.0.0-cdh4.0.0 aus cdh4 maven repo in einem maven-Projekt in Eclipse 3.81, m2e-Plugin, mit oracles jdk 1.7.0_05 unter win7 zu importieren
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.0.0</version>
</dependency>
Ich erhalte jedoch den folgenden Fehler:
The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
Genauer gesagt, Maven gibt an, dass das folgende Artefakt fehlt
Missing artifact jdk.tools:jdk.tools:jar:1.6
Wie kann man das lösen?
tools.jar
in Programmdateien auf den vollständigen Pfad verweisen, enthält dieser Pfad Leerzeichen und muss in Anführungszeichen gesetzt werden, ja. Es ist einfacher, einfach in dieses Verzeichnis zu navigieren undmvn install:install-file
von dort aus zuDas Problem liegt in der Eclipse Maven-Unterstützung, die entsprechende Frage ist hier .
Unter Eclipse wird die
java.home
Variable auf die JRE gesetzt, mit der Eclipse gestartet wurde, nicht auf die Build-JRE. Die Standardsystem-JRE vonC:\Program Files
enthält das JDKtools.jar
nicht und wird daher nicht gefunden.Um das Problem zu beheben, müssen Sie Eclipse mithilfe der JRE aus dem JDK starten, indem Sie Folgendes hinzufügen
eclipse.ini
( vorher-vmargs
!):-vm C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll
Aktualisieren Sie dann die Maven-Abhängigkeiten (Alt-F5) (Nur das Aktualisieren des Projekts reicht nicht aus).
quelle
-vm
und dem tatsächlichen Parameterwert erforderlich ist.[jdk]\jre\bin\javaw.exe
stattgefunden, als Eclipse das automatisch erkannte , und wenn es so ausgeführt wurde, kann Maven die tools.jar nicht finden. Musste Eclipse explizit so ändern, dass es mit[jdk]\bin\javaw.exe
Maven ausgeführt wird, um richtig zu finden, was es dascom.sun:tools:1.8
Glas nennt-vm
in der eclipse.ini. @rustyx zeigt zeigt den Pfad zum [jdk_path] / jre / bin und für mich hat dies dazu geführt, dass ich tools.jar nicht gefunden habe - obwohl ich auf javaw.exe und nicht auf die DLL verwiesen habe. Als ich es änderteC:/Program Files/Java/jdk1.8.0_51/bin/javaw.exe
und Eclipse startete, Alt-F5, und der Fehler verschwand. Ich war überrascht zu erfahren, dass es zwei verschiedene ausführbare Javaw-Dateien mit unterschiedlichen Prüfsummen im JDK gibt.systemPath
richtig angeben , dh mit "../" beginnen, tritt dieses Problem nicht auf. Mavensjava.home
Variable sollte auf die JRE zeigen , nicht auf JDK. Die UmgebungsvariableJAVA_HOME
sollte dagegen auf das JDK verweisen.dank npe hinzufügen
<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>
zu pom.xml hat den Trick gemacht.
quelle
Wenn Sie ohne tools.jar leben können und es nur als verkettete Abhängigkeit enthalten ist, können Sie es aus dem fehlerhaften Projekt ausschließen:
<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>
quelle
Das hat bei mir funktioniert:
<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>
quelle
Ich benutze unten in meinem MR-Projekt.
<exclusions> <exclusion> <artifactId>jdk.tools</artifactId> <groupId>jdk.tools</groupId> </exclusion> </exclusions>
quelle
Vielleicht Systeminstallation JDK-Paket, aber vielleicht einige Entwicklungstools oder Plugin.
Ich finde dieses Problem unter opensuse env. und ich installiere java-1_6_0-openjdk-devel
Das Problem ist verschwunden.
quelle
Ich war auch mit diesem Problem konfrontiert, weil ich nur JRE installiert habe, nicht mit JDK . Das Hinzufügen einer Abhängigkeit für jdk.tools kann für mich nicht behoben werden , da tools.jar in meinem Verzeichnis $ {JAVA_HOME} / lib / nicht vorhanden war .
Jetzt habe ich JDK heruntergeladen und installiert , um es zu beheben.
quelle
Ändern Sie die installierten JREs in Ihrer Eclipse. Fenster> Einstellungen> Java> Installierte JREs, ändern Sie den Speicherort von jre in% JAVA_HOME% / jre, jedoch nicht in C: \ Programme \ Java \ jre7
quelle
Wenn die Datei jdk.tools im .m2-Repository vorhanden ist. Trotzdem erhalten Sie den Fehler ungefähr so:
fehlendes Artefakt: jdk.tools ..... c: ... / jre / ..
Ändern Sie im Buildpath-> configure build path -> Libraries. Ändern Sie einfach die JRE-Systembibliothek von JRE in JDK.
quelle
Versuchen :
mvn install: install-file -DgroupId = jdk.tools -DartifactId = jdk.tools -Dversion = 1.6 -Dpackaging = jar -Dfile = "C: \ Programme \ Java \ jdk \ lib \ tools.jar"
Überprüfen Sie auch: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
quelle
Ok, wenn Sie Windows verwenden
Gehen Sie zu C: \ Programme \ Java \ jdk1.8.0_40 \ lib (die jdk-Version kann für Sie anders sein)
Stellen Sie sicher, dass tools.jar vorhanden ist (andernfalls laden Sie es herunter)
Kopieren Sie diesen Pfad "C: \ Programme \ Java \ jdk1.8.0_40".
In 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>
Wiederaufbauen und rennen! BINGO!
quelle