J'ai suivi le tutoriel de démarrage, mais je suis bloqué après avoir importé le projet playn à l'aide de Maven. J'utilise Eclipse Indigo sous Windows 7 64 bits.
Tous les projets importés ont la même erreur:
Missing Artifact com.sun:tools:jar in all the pom.xml files.
Après quelques heures de recherche sur les forums, j'ai essayé:
Installation de la dernière version de Java 1.6.029 Modification de ma JAVA_HOME
variable d'environnement pour qu'elle pointe vers \program files\Java\jdk1.6_029
Modification de mes préférences Java Eclipse pour utiliser le JRE jdk1.6_029
.
J'aimerais vraiment expérimenter playn, mais pourquoi il y a quelques messages, je n'arrive pas à trouver une réponse consensuelle sur la solution. Certaines personnes disent que Sun a supprimé quelque chose du jdk 64 bits, d'autres disent que vous devez éditer vos fichiers xml, beaucoup de gens ont dit que vous aviez changé votre JAVA_HOME
, et un autre a dit que vous deviez changer les options de votre VM pour Eclipse.
Toute aide pour clarifier cela serait appréciée, et peut-être utile pour beaucoup, car je n'ai pas de configuration particulièrement étrange ici.
(modifier) Voici le pom.xml dans le premier projet. Eclipse signale une erreur dans la ligne qui dit:
<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.1-SNAPSHOT</version>
</parent>
<artifactId>playn-android</artifactId>
<name>PlayN Android</name>
<packaging>jar</packaging>
<repositories>
</repositories>
<dependencies>
<dependency>
<groupId>com.googlecode.playn</groupId>
<artifactId>playn-core</artifactId>
<version>${project.version}</version>
</dependency>
<!-- needed because Android uses the same JSON code as playn-java;
that should be factored into a library shared by both backends -->
<dependency>
<groupId>com.googlecode.playn</groupId>
<artifactId>playn-java</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${android.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
</build>
</project>
Réponses:
Je viens de poster sur cette question à propos de ce même problème et comment je l'ai résolu, mais je vais la coller (et la développer) ici aussi, car elle semble plus pertinente.
J'ai eu le même problème lors de l'utilisation d'Eclipse dans Windows 7, même lorsque j'ai supprimé le JRE de la liste des JRE dans les paramètres Eclipse et que je n'avais que le JDK.
Ce que j'ai fini par avoir à faire (comme vous l'avez mentionné dans votre question) était de modifier la ligne de commande du raccourci que j'utilise pour lancer Eclipse pour y ajouter l'argument -vm comme ceci:
-vm "T:\Program Files\Java\jdk1.6.0_26\bin"
Bien sûr, vous l'ajusteriez pour qu'il pointe vers le répertoire bin de votre installation JDK. Cela fait qu'Eclipse s'exécute en utilisant le JDK au lieu de JRE, puis il est capable de trouver le
tools.jar
correctement.Je pense que cela a à voir avec la façon dont Eclipse trouve son JRE par défaut quand aucun n'est spécifié. Je suppose qu'il a tendance à préférer JRE à JDK (pourquoi, je ne sais pas) et opte pour le premier JRE compatible qu'il trouve. Et s'il sort des clés de registre Windows comme le suggère la réponse de Vladiat0r, il recherche d'abord la
HKLM\Software\JavaSoft\Java Runtime Environment
clé au lieu de laHKLM\Software\JavaSoft\Java Development Kit
clé.la source
javaw.exe
à ce chemin (donc en entier:)-vm "T:\Program Files\Java\jdk1.8.0_66\bin\javaw.exe"
;J'ai eu le même problème en développant une application de service Web simple, dans mon cas, j'ai dû ajouter un plug-in codehous afin d'obtenir des bibliothèques jaxws. Cependant, maven pom a continué à poser des questions sur le fichier jar des outils.
Je dois dire que les commentaires ci-dessus sont corrects, vous pouvez inclure l'entrée ci-dessous dans le fichier pom:
<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jdk1.6.0_29\lib\tools.jar</systemPath> </dependency>
Mais que se passera-t-il lorsque vous devrez déployer sur une instance de production? Vous pouvez remplacer le chemin par une référence à une variable d'environnement système mais cela ne me semble toujours pas bon, du moins pour moi.
J'ai trouvé une autre solution dans un commentaire StackOverflow:
Problème d'artefact Maven 3
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>${struts2.version}</version> <exclusions> <exclusion> <artifactId>tools</artifactId> <groupId>com.sun</groupId> </exclusion> </exclusions> </dependency>
Ils suggèrent d'inclure une déclaration d'exclusion pour le pot d'outils et cela fonctionne. Donc, pour résumer: vous pouvez inclure une règle d'exclusion dans votre dépendance et éviter d'avoir le problème tool.jar:
<exclusions> <exclusion> <artifactId>tools</artifactId> <groupId>com.sun</groupId> </exclusion> </exclusions>
la source
pom.xml
ne fonctionne pas pour moi.J'ai rencontré le même problème et la façon dont j'ai pu le résoudre a été d'ajouter l'emplacement de dépendance de
tools.jar
dans le fichierpom.xml
. Ainsi:<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jdk1.6.0_29\lib\tools.jar</systemPath> </dependency>
Assurez-vous de modifier l'
<systemPath>
emplacement où se trouve votre fichier tools.jar.la source
Aucune des autres réponses ne l'a fait pour moi. Cela a été de vérifier la "hiérarchie des dépendances" du pom.xml dans eclipse, où le fait de donner un filtre "tools" a révélé que j'avais une vraie dépendance à tools.jar:
Donc, le coupable pour moi était ceci:
<dependency> <groupId>com.github.markusbernhardt</groupId> <artifactId>robotframework-selenium2library-java</artifactId> <version>1.4.0.7</version> <scope>test</scope> </dependency>
L'ajout d'une exclusion l'a corrigé:
<dependency> <groupId>com.github.markusbernhardt</groupId> <artifactId>robotframework-selenium2library-java</artifactId> <version>1.4.0.7</version> <scope>test</scope> <exclusions> <exclusion> <artifactId>tools</artifactId> <groupId>com.sun</groupId> </exclusion> </exclusions> </dependency>
L'exclusion ne semble pas avoir d'inconvénients.
la source
La même chose avec moi et Windows 7. J'ai fini par ajouter deux lignes à
eclipse.ini
:-vm C:\Program Files\Java\jdk1.6.0_35\bin
J'ai essayé de l'utiliser
%JAVA_HOME%
, mais cela n'a pas fonctionné.la source
-vmargs
ligne, comme tout ce qui est passé qui sera interprété comme des arguments de démarrage de la VM. Donc: juste avant celui-là!-vm
avant le-vmargs
est la clé !. Merci!J'ai résolu ce problème dans les paramètres d'Eclipse 4.3 - uniquement en ajoutant des bibliothèques JDK aux bibliothèques JRE.
Allez dans Windows -> paramètres -> Java -> JRE installés -> sélectionnez JDK et cliquez sur Modifier -> cliquez sur Ajouter des JAR externes et ajoutez tools.jar (placé dans JDK / lib)
la source
Vérifiez la version JDK sur votre machine et dans les
pom.xml
deux devrait être la même<dependency> <groupId>sun.jdk</groupId> <artifactId>tools</artifactId> <version>1.8</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jdk1.8.0_192\lib\tools.jar</systemPath> </dependency>
la source
Si ce problème persiste, cela peut être dû à un JDK de version égale ou supérieure à 11.
L'
tools.jar
archive a été supprimée du dossier lib dans ces JDK (voir cette réponse à une question similaire). Dans ce cas, essayez d'utiliser d'autres versions des bibliothèques, qui ne reposent pas sur lacom.sun:tools
bibliothèque.la source
Après avoir lutté pendant un moment, j'ai finalement réussi à utiliser cela au
eclipse.ini
lieu de la ligne de commande. Après avoir finalement lu la documentation, j'ai réalisé que l'argument -vm doit être sur une ligne séparée, sans guillemets, et avant tout -vmargs:-vm C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
la source
J'ai eu une erreur similaire. C'est parce que JDK n'est pas correctement défini dans eclipse. Cucumber a besoin de JDK avec JRE, alors ajoutez ci-dessous la dépendance dans votre pom.xml
<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jdk1.8.0_101\lib\tools.jar</systemPath> </dependency>
la source
Dans l'onglet POM effectif des fichiers pom, je vois le chemin de dérivation suivant:
C:\Program Files\Java\jre6/../lib/tools.jar
et je pense que ce n'est pas un chemin valide dans Windows. J'ai essayé de copier le tools.jar dans le dossier jre6 / lib ainsi que dans Java / lib sans succès.La valeur "C: \ Program Files \ Java \ jre6" provient du registre
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0_30 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6
Et définissez la clé JavaHome sur l'emplacement où votre JRE jdk est installé. Ensuite, toutes les erreurs du compilateur ont disparu.
La réinstallation du JDK ne l'a pas résolu. La définition de la variable d'environnement système JAVA_HOME ou java.home n'a pas aidé.
L'autre alternative que j'ai vue est d'ajouter la dépendance avec le bon chemin dans chaque fichier pom xml, mais le playn-samples a beaucoup de fichiers qu'il est ridicule de devoir éditer.
Ce sont les résultats POM efficaces, qui montrent le mauvais chemin!
<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jre6/../lib/tools.jar</systemPath> <optional>true</optional> </dependency>
la source
Ajoutez cette dépendance dans le fichier pom.xml. J'espère que cette aide.
Dans
<systemPath>
property, vous devez écrire le chemin de votre lib jdk.<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>
la source
J'ai fini par utiliser le correctif eclipse.ini:
openFile -vm (Your Java Home JDK here)
Par exemple,
-vm C:\Java\JDK\1.6
,.J'ai dû également changer JRE en JDK:
Dans Eclipse IDE, accédez à:
la source
-vm
, placez le chemin du SDK Java sur la ligne nect et placez tous les-vm
indicateurs nouvellement ajoutés avant le--vmargs
dans leeclipse.ini
fichier.Comme d'autres affiches l'ont indiqué, le problème ici est lié au JRE utilisé par Eclipse, incapable de trouver les outils jar. J'ai résolu le problème en allant dans une direction un peu différente de celle indiquée ci-dessus, et c'était à cause de la façon dont mes projets et mon environnement.
Eclipse 4.5 nécessite au moins Java 7 pour l'exécution, donc j'ai configuré mon système pour utiliser un JRE Java 8 situé à C: \ java \ jre1.8.0_45.
Ensuite, j'utilise un fichier POM qui suppose que je fonctionne avec un JDK Java 6.
<profiles> <profile> <id>default-profile</id> <activation> <activeByDefault>true</activeByDefault> <file> <exists>${java.home}/../lib/tools.jar</exists> </file> </activation> <properties> <toolsjar>${java.home}/../lib/tools.jar</toolsjar> </properties> </profile> <profile> <id>osx_profile</id> <activation> <activeByDefault>false</activeByDefault> <os> <family>mac</family> </os> </activation> <properties> <toolsjar>${java.home}/../Classes/classes.jar</toolsjar> </properties> </profile> </profiles> <dependencies> <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6.0</version> <scope>system</scope> <systemPath>${toolsjar}</systemPath> </dependency> </dependencies>
Je ne suis pas autorisé à modifier le fichier POM, j'ai donc dû faire un peu de pokery jiggery. J'ai copié le fichier tools.jar de mon JDK Java 6, créé le répertoire C: \ java \ lib et l'ai collé là. J'ai ensuite redémarré eclipse et nettoyé mon projet. Et les erreurs VOILA ont disparu.
Ce n'est pas une solution élégante, et je pense que la bonne solution serait de changer la façon dont le POM est configuré, mais comme je n'ai pas pu, cela fonctionne.
la source
J'ai eu le même problème sur un Windows 7 et Eclipse 3.7 j'ai réussi à le réparer en démarrant
Vous pouvez démarrer une cmd et lancer eclipse comme ça, ou vous pouvez éditer votre raccourci et ajouter -vm "D: \ JDK6 \ bin" comme argument dans la "section cible".
Pour rappel, j'ai également essayé d'ajouter -vm "D: \ JDK6 \ bin" à eclipse.ini mais cela n'a pas fonctionné. Et l'ajout de JRE6 ne fonctionnera pas car il ne contient PAS tools.jar dans son répertoire "lib". Seul JDK le fait.
la source
Après avoir essayé tout ce qui précède, j'avais toujours le même problème.
Puis j'ai essayé ce qui suit,
Ouvrez une invite de commande et tapez java -version. Il m'a montré une version 1.8 de JRE.
Ouvrez une invite de commande et accédez à l'emplacement du répertoire bin JDK 1.7 et tapez java -version. Cette fois, il a montré correctement 1.7.
Ensuite, après avoir creusé à quelques endroits, j'ai trouvé qu'en dehors des emplacements ci-dessus, il y avait des emplacements supplémentaires pour l'exécution Java.
Enregistrement
Il existe également une clé de registre dans laquelle l'emplacement JRE est spécifié sous
J'ai changé les entrées ici pour pointer vers le JDK 1.7
Données de programme
Le répertoire "C: \ ProgramData \ Oracle \ Java \ javapath" est présent dans la variable d'environnement PATH et contient des raccourcis vers java, javaw etc ... La cible de ces raccourcis était tous JRE 1.8. ( Je pense que c'était le principal problème ) J'ai changé les raccourcis pour pointer vers les exe JDK corrects.
Une fois que tout cela a été fait. J'ai ouvert eclipse toutes les erreurs jdk.tools pom.xml ont disparu.
la source
J'ai eu ce problème et il s'avère que JBossDevStudio 9.1 sous Windows est un programme 32 bits. Eclipse, et donc JBossDevStudio, ne fonctionne pas avec le mauvais type de JVM. L'éclipse 64 bits a besoin d'une JVM 64 bits, l'éclipse 32 bits a besoin d'une JVM 32 bits. Ainsi, la configuration d'Eclipse pour qu'elle s'exécute avec mon JDK 64 bits installé ne fonctionnait pas.
L'installation d'un JDK 32 bits et l'exécution d'Eclipse à partir de celui-ci ont résolu le problème.
Au moins pour l'un de mes projets, un autre où j'avais essayé de configurer un JDK d'exécution dans les propriétés du projet Eclipse est toujours cassé.
la source
J'ai résolu le problème en désinstallant JRE de mon système et en laissant JDK uniquement. Réinstaller JDK ne suffit pas car le programme d'installation d'Oracle JDK installe à la fois JDK et JRE
BTW, il me semble que ce bogue est responsable des problèmes: java.home du JRE Eclipse est utilisé à la place du JRE de build
la source
Dans mon cas, j'exécutais Maven Build à partir des configurations d'exécution Eclipse. Même après avoir modifié la configuration JRE par défaut pour qu'elle pointe vers le dossier d'installation JDK, le problème n'a pas été résolu pour moi. La raison en est qu'il existe un onglet JRE dans la configuration Maven Build - Run (voir l'image ci-dessous). Et il indiquait toujours mon installation JRE. Je l'ai changé pour pointer vers l'installation JDK, puis j'ai exécuté le Maven Build. Cette fois, ça a marché. entrez la description de l'image ici
la source
Comprenons pourquoi ce problème est survenu:
La commande Maven "mvn -version" renvoie la sortie ci-dessus.
Nous pouvons voir que maven obtient le chemin d'exécution Java sous la forme "C: \ Program Files \ Java \ jre1.8.0_221" si vous ne spécifiez pas la variable d'environnement JAVA_HOME. Et puis maven suppose que ce chemin est JAVA_HOME. C'est pourquoi lors de la construction de l'application à partir de l'invite de commande ou de n'importe quel IDE, maven recherche le fichier tools.jar dans le chemin "% JAVA_HOME% .. \ lib \ tools.jar".
tools.jar est présent dans le chemin JDK, nous devons donc le mentionner à maven avant de l'utiliser. Aujourd'hui, les machines sont construites avec jre déjà disponible, mais jdk n'est requis que pour le développement. Cela pourrait être la raison pour laquelle maven choisit automatiquement le chemin jre.
Pour plus d'aide, veuillez lire le code mvn.cmd disponible dans le chemin d'installation de maven.
la source
Le problème est que le système ne parvient pas à trouver le fichier tools.jar
Vérifiez donc d'abord que le fichier est présent dans l' installation JDK du répertoire.
Faites l'entrée ci-dessous dans POM.xml comme indiqué à juste titre par d'autres
<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jdk1.8.0_241\lib\tools.jar</systemPath> </dependency>
puis suivez les étapes ci-dessous également pour supprimer le problème
1) Faites un clic droit sur votre projet
2) Cliquez sur Build path
Conformément à l'image ci-dessous, sélectionnez le JRE par défaut de l'espace de travail et cliquez sur Terminer.
la source
Changer «JRE installés» sous «Préférences -> Java -> JRE installé» en JDK home a fonctionné pour moi.
FYI - J'utilise JDK 1.8.
la source
Si vous utilisez openjdk, vous devez installer le package openjdk-6-sdk.
la source
Changer l'emplacement relatif de
${java.home}/../lib/tools.jar
en chemin absolu desC:\Program Files\Java\jdk1.6.0_29\lib\tools.jar
œuvres pour moi.Vous ne devriez avoir à le changer que dans le
playn/pom.xml
.Maintenant pour les playn-samples, Vladiator a raison, c'est trop de fichiers pom à changer.
la source