2012-01-01 13 views
12

tratando de construir proyectos de ejemplo reproducirN que recibo:error de compilación: falta com.sun artefacto: herramientas: Tarro: 1.6

Missing artifact com.sun:tools:jar:1.6 pom.xml /playn-cute line 6 Maven Dependency Problem 

En cada archivo pom.xml. ¿Cómo lo resuelvo?

Editar:

He añadido los profiles node a la pom.xml, pero sigue siendo el error. He comprobado que el tools.jar en realidad existe, y no fue así. Así que agregué tools.jar a la carpeta lib. Y aún así el error permanece.

El pom.xml completo:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.googlecode.playn</groupId> 
     <artifactId>playn-project</artifactId> 
     <version>1.0.1</version> 
    </parent> 

    <artifactId>playn-cute</artifactId> 
    <name>PlayN Cute Metaproject</name> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <properties> 
     <playn.version>1.0.1</playn.version> 
    </properties> 

    <modules> 
     <module>core</module> 
     <module>java</module> 
     <module>html</module> 
     <!-- <module>flash</module> --> 
     <module>android</module> 
    </modules> 

    <profiles> 
     <profile> 
      <id>default-tools.jar</id> 
      <activation> 
       <property> 
        <name>java.vendor</name> 
        <value>Sun Microsystems Inc.</value> 
       </property> 
      </activation> 
      <dependencies> 
       <dependency> 
        <groupId>com.sun</groupId> 
        <artifactId>tools</artifactId> 
        <version>1.6</version> 
        <scope>system</scope> 
        <systemPath>${java.home}/../lib/tools.jar</systemPath> 
       </dependency> 
      </dependencies> 
     </profile> 
    </profiles> 
</project> 
+0

¿Qué sistema operativo ¿Estas usando? ¿Cuál es la ruta exacta de su comando javac y cuál es la ruta exacta en la que instaló tools.jar? ¿Tiene instalado Java SDK o solo Java JRE? Parece que tienes lo último, pero necesitas lo primero. – samskivert

+0

Compruebe mi respuesta en más o menos el mismo [problema] (http://stackoverflow.com/questions/6281674/what-is-wrong-with-my-maven-config): Creo que tiene que ver con el camino utilizado para tools.jar – Chris

+0

La solución rápida que me ayudó fue apuntar el JRE al disponible en la carpeta JDK. –

Respuesta

19

Este artefacto siempre se maneja como una dependencia de 'sistema'. Nunca se almacena en un repositorio.

Ver http://maven.apache.org/general.html#tools-jar-dependency para los detalles.

si no hay jar de herramientas, y no está en una Mac, está intentando utilizar un JRE cuando el requisito es un JDK. No puede convertir uno en el otro copiando el archivo.

+0

Gracias bmargulies. Por favor, mira la edición de mi pregunta, he agregado más progreso. – MichaelS

1

Algunos consejos que pueden ayudarle a:

  1. Comprobar si el tools.jar está presente en la url de recompra en pom.xml.
  2. Verifique la dependencia en pom.xml. Puede ser incorrecto No encontré ningún artefacto de jar en http://search.maven.org/#browse%7C96611365.

Gracias.

-2

tuve que cambiar lo que tenía:

<systemPath>${java.home}/../lib/tools.jar</systemPath> 

a la ruta explícita, usando el JDK no JRE como bmargulies dicho:

<systemPath>C:/Program Files/Java/jdk1.6.0_24/lib/tools.jar</systemPath> 

Espero que ayude.

8

Tuve el mismo problema cuando uso Eclipse en Windows 7, incluso cuando eliminé el JRE de la lista de JRE en la configuración de Eclipse y solo tenía allí el JDK. Su pregunta no indica si está usando Maven o Eclipse en la línea de comandos, así que pensé en compartir lo que me solucionó en Eclipse.

Lo que terminé tener que hacer era modificar la línea de comandos para el acceso directo que utilizo para lanzar Eclipse para añadir el argumento -vm a él de este modo:

-vm "T:\Program Files\Java\jdk1.6.0_26\bin" 

Por supuesto, tendría que ajustar para apuntar al directorio bin de su instalación de JDK. Lo que hace esto es provocar que Eclipse se ejecute utilizando el JDK en lugar de JRE, y luego puede encontrar el tools.jar correctamente.

+1

Esto funcionó para mí en un proyecto de Maven en eclipse, pero para obtener el efecto completo tuve que hacer Maven -> Actualizar proyecto desde el menú contextual – mister270

3

Estoy probando en Ubuntu. No estoy muy familiarizado con las herramientas de Java. La instalación de JDK resolvió el problema para mí.

aptitude install openjdk-6-jdk 
+0

¡Eso lo resuelve! – nightfly

-1

Este Apple Developer article estados:

tools.jar does not exist. Classes usually located here are instead included in classes.jar. Scripts that rely on the existence of tools.jar need to be rewritten accordingly.

0

yo también tenía este problema, y ​​aunque el java_path estaba bien, el problema persistió. La solución que funcionó para mí fue:

Ejecutar este comando (donde Dfile apunta a su tools.jar):

mvn install:install-file -DgroupId=com.sun -DartifactId=tools -Dversion=1.4.2 -Dpackaging=jar -Dfile="C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar" 

Luego, en el pom.xml Principal añadir la referencia a la dependencia:

<dependency> 
    <groupId>com.sun</groupId> 
    <artifactId>tools</artifactId> 
    <version>1.4.2</version> 
</dependency> 
-2

Agregue esta dependencia en el archivo pom.xml.

En la propiedad <systemPath> tiene que escribir su ruta jdk lib.

<dependency> 
    <groupId>com.sun</groupId> 
    <artifactId>tools</artifactId> 
    <version>1.4.2</version> 
    <scope>system</scope> 
    <systemPath>C:/Program Files/Java/jdk1.6.0_30/lib/tools.jar</systemPath> 
</dependency> 
0

así es como lo resolví. por favor pegue debajo de las líneas en su archivo eclipse.ini.

-vm camino hasta java.exe (como se muestra a continuación)

-vm C:/Archivos de programa/Java/jdk1.7.0_60/bin/java

espero que ayude.

1

Hay muchas razones que pueden aparecer este error en el IDE Eclipse

  1. Eclipse señalando JRE en lugar de JDK
  2. biblioteca JDK no contiene tools.jar

Para ello se podría desea agregar tools.jar por su cuenta a través de Preferencias -> Java -> JRE instalado -> (seleccione JDK, edite y agregue archivos jar externos -> navegue a tools.jar)

  1. Otro motivo podría ser este -> el repositorio padre maven de su proyecto tiene un jar con el mismo nombre en algún otro artefacto.

es necesario localizar a través tools.jar - ver> Dependencia Jerarquía de pom.xml en Eclipse y una vez que haya localizado el frasco se puede añadir una exclusión no

como ->

<groupId>com.parent.project</groupId> 
    <artifactId>parent-project-dependencies-pom</artifactId> 
    <version>${dependencies.version}</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.sun</groupId> 
       <artifactId>tools</artifactId> 
      </exclusion> 
     </exclusions> 
2

No debería necesitar agregar la dependencia a su POM. Tuve este problema en eclipse y fue porque el eclipse se estaba ejecutando en un JRE, no en un JDK.

Ver esta pregunta aquí por la misma cuestión: Missing artifact com.sun:tools:jar

resuelta por especificando los usos vm de eclipse. También verifique que la ruta de compilación para su proyecto de eclipse esté usando un JDK, no un JRE.

Tener un JDK en la ruta de compilación, y establecer explícitamente un JDK en el eclipse INI aún no funciona, sin embargo, si el java en la ruta era jre no jdk (ruta de Windows o equivalente de mac/mac).

Ejecutar esto desde la línea de comandos para ver qué Java en su ruta es: How do I find where JDK is installed on my windows machine?

Si es un JRE que debe cambiarlo a un JDK y relanzar el IDE.

0

Esta es la forma en que resolvió este problema utilizando JBoss Developer Studio 8.1.10:

Añadir a su archivo jbdevstudio.ini ubicado en: D:\Users\bertrand\jbdevstudio\studio estas dos líneas (antes -vmargs):

-vm 
C:\Program Files\Java\jdk1.7.0_79\bin 
Cuestiones relacionadas