java - Construyendo Hadoop con Eclipse/Maven-Artefacto perdido jdk.tools:jdk.tools:jar:1.6
maven-2 cloudera (12)
Estoy tratando de importar org.apache.hadoop de cloudera: hadoop-client: 2.0.0-cdh4.0.0 desde cdh4 maven repo en un proyecto maven en eclipse 3.81, plugin m2e, con jdk de oracle 1.7.0_05 en win7 usando
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.0.0</version>
</dependency>
sin embargo, me sale el siguiente error:
The container ''Maven Dependencies'' references non existing library ''C:/Users/MyUserId/.m2/repository/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.jar''
más específico, maven afirma que falta el siguiente artefacto
Missing artifact jdk.tools:jdk.tools:jar:1.6
¿Cómo resolver esto?
Cambie el conjunto de JRE instalados en su eclipse. Ventana> Preferencias> Java> JRE instalados, cambie la ubicación de jre a% JAVA_HOME% / jre, pero no algo como C: / Program Files / Java / jre7
El problema está en el soporte de Eclipse Maven, la pregunta relacionada está here .
En Eclipse, la variable java.home
se establece en el JRE que se utilizó para iniciar Eclipse, no el JRE de compilación. El JRE del sistema predeterminado de C:/Program Files
no incluye el JDK, por lo que tools.jar
no se encuentra.
Para solucionar el problema, debe iniciar Eclipse utilizando el JRE del JDK agregando algo como esto a eclipse.ini
( antes de -vmargs
!):
-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll
A continuación, actualice las dependencias de Maven (Alt-F5) (solo actualizar el proyecto no es suficiente).
Esto funcionó para mí:
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>
Ok, si estás usando el sistema operativo Windows
Vaya a C: / Archivos de programa / Java / jdk1.8.0_40 / lib (la versión jdk puede ser diferente para usted)
Asegúrese de que tools.jar esté presente (de lo contrario, descárguelo)
Copie esta ruta "C: / Archivos de programa / Java / jdk1.8.0_40"
En 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>
¡Reconstruye y ejecuta! ¡BINGO!
Si jdk.tools está presente en el repositorio .m2. Todavía obtienes el error algo como esto:
Artefacto perdido: jdk.tools ..... c: ... / jre / ..
En el camino de compilación -> configurar compilación -> Bibliotecas. Basta con cambiar la biblioteca del sistema JRE de JRE a JDK.
Si puede vivir sin tools.jar y solo está incluido como una dependencia encadenada, puede excluirlo del proyecto infractor:
<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>
También me enfrenté a este problema porque solo instalé JRE no con JDK . Por lo tanto, agregar la dependencia de jdk.tools no puede corregirme porque tools.jar no existía en mi directorio $ {JAVA_HOME} / lib / .
Ahora descargué e instalé JDK para arreglarlo.
Uso debajo en mi proyecto MR.
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
gracias a npe, agregando
<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>
a pom.xml hizo el truco.
tal vez el sistema instale el paquete jdk, pero tal vez algunas herramientas de desarrollo o complemento.
Encuentro este problema en opensuse env. e instalo java-1_6_0-openjdk-devel
el problema se desvaneció ..
tratar :
mvn install: install-file -DgroupId = jdk.tools -DadifactId = jdk.tools -Dversion = 1.6 -Dpackaging = jar -Dfile = "C: / Archivos de programa / Java / jdk / lib / tools.jar"
también puede consultar: maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
jdk.tools:jdk.tools
(o com.sun:tools
, o lo que sea que lo com.sun:tools
) es un archivo JAR que se distribuye con JDK. Usualmente lo agregas a proyectos como este:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
Ver, las preguntas frecuentes de Maven para agregar dependencias a tools.jar
O bien, puede instalar tools.jar
manualmente en el repositorio local usando:
mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true
y luego hacer referencia como lo hizo Cloudera, usando:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.6</version>
</dependency>