En essayant de construire des exemples de projets PlayN, je reçois:
Missing artifact com.Sun:tools:jar:1.6 pom.xml /playn-cute line 6 Maven Dependency Problem
Sur chaque fichier pom.xml
. Comment le résoudre?
Modifier:
J'ai ajouté le noeud de profils au pom.xml
, mais l'erreur persiste. J'ai vérifié que le tools.jar
existait réellement et ce n'était pas le cas. J'ai donc ajouté tools.jar
au dossier lib. Et toujours l'erreur reste.
Le pom.xml complet:
<?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>
Cet artefact est toujours traité comme une dépendance «système». Il n'est jamais stocké dans un repo.
Voir http://maven.Apache.org/general.html#tools-jar-dependency pour les détails.
s'il n'y a pas de fichier d'outils et que vous n'êtes pas sur un Mac, vous essayez d'utiliser un JRE lorsque l'exigence est un JDK. Vous ne pouvez pas transformer l'un en l'autre en copiant un fichier.
J'avais le même problème lorsque j'utilisais Eclipse dans Windows 7, même lorsque j'ai supprimé le JRE de la liste des JRE dans les paramètres Eclipse et que le JDK venait juste d'arriver. Votre question n'indique pas si vous utilisez Maven en ligne de commande ou Eclipse. Je pensais donc partager ce qui m'avait été résolu dans Eclipse.
Ce que j’ai finalement dû faire est de modifier la ligne de commande du raccourci que j’utilise pour lancer Eclipse afin d’ajouter l’argument -vm comme suit:
-vm "T:\Program Files\Java\jdk1.6.0_26\bin"
Bien sûr, vous devez ajuster cela pour qu'il pointe vers le répertoire bin de votre installation JDK. Eclipse lui-même s'exécute à l'aide du JDK au lieu de JRE, ce qui lui permet de trouver le tools.jar
correctement.
Il existe de nombreuses raisons pour lesquelles cette erreur peut apparaître sur votre IDE Eclipse.
Pour cela, vous voudrez peut-être ajouter tools.jar vous-même dans Préférences -> Java -> JRE installé -> (sélectionnez JDK, éditez et ajoutez des fichiers JAR externes -> accédez à tools.jar).
Vous devez localiser tools.jar par le biais -> de la vue Hiérarchie des dépendances pour pom.xml dans Eclipse et une fois que vous avez localisé le fichier jar, vous pouvez y ajouter une exclusion.
comme ->
<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>
Je teste sur Ubuntu. Je ne connais pas très bien les outils Java. L'installation de JDK a résolu le problème pour moi.
aptitude install openjdk-6-jdk
J'ai également eu ce problème, et bien que Java_path soit correct, le problème persiste. Le correctif qui a fonctionné pour moi était:
Exécutez cette commande ( où Dfile pointe vers votre fichier 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"
Ensuite, dans le fichier pom.xml principal, ajoutez la référence à la dépendance:
<dependency>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
<version>1.4.2</version>
</dependency>
Vous ne devriez pas avoir besoin d'ajouter la dépendance à votre POM. J'ai eu ce problème dans Eclipse et c'était parce qu'Eclipse s'exécutait dans un JRE, pas dans un JDK.
Voir cette question ici pour le même problème: Artefact manquant com.Sun: tools: jar
Résolu en spécifiant les utilisations de vm Eclipse. Vérifiez également que le chemin de génération de votre projet Eclipse utilise un JDK, pas un JRE.
Avoir un JDK sur le chemin de construction et définir explicitement un JDK dans Eclipse INI ne fonctionne toujours pas, cependant, si le Java sur le chemin est un jre pas un jdk (chemin Windows, ou équivalent linux/mac).
Exécutez cette commande à partir de la ligne de commande pour voir ce que Java représente sur votre chemin: Comment puis-je savoir où JDK est installé sur ma machine Windows?
Si c'est un JRE, vous devriez le changer en JDK et relancer votre IDE.
Quelques conseils qui peuvent vous aider:
Merci.
c’est ainsi que j’ai résolu le problème. Veuillez coller les lignes suivantes dans votre fichier Eclipse.ini.
-vm chemin jusqu'à Java.exe (comme indiqué ci-dessous)
-vm C:/Program Files/Java/jdk1.7.0_60/bin/Java
j'espère que ça aide.
J'ai eu le même problème, c'était à cause de plusieurs fichiers tools.jar dans le chemin.
Mais le problème était spécifique à la dépendance de l'espace de travail. J'ai appris à le savoir car mes autres espaces de travail dans la même Eclipse fonctionnent bien.
Mesures que j'ai prises pour enquêter et résoudre:
1) Ouvrir le fichier pom du projet
2) Allez dans la section Dependency Hierarchies
dans pom
3) Dans la zone de texte du filtre du coin supérieur droit, entrez le nom tools.jar.
4) Cela montrera la hiérarchie des dépendances du fichier tools.jar.
5) Dans la partie droite Resolved Section
, sélectionnez le fichier tools.jar et cliquez avec le bouton droit de la souris sur le fichier jar.
6) sélectionnez l'exclusion du fichier.
Reconstruisez ensuite le projet.
Voici comment j'ai résolu ce problème en utilisant Jboss Developer Studio 8.1.10 :
Ajoutez à votre fichier jbdevstudio.ini
situé dans: D:\Users\bertrand\jbdevstudio\studio
ces deux lignes (avant le -vmargs
):
-vm
C:\Program Files\Java\jdk1.7.0_79\bin