J'ai eu une erreur dans Eclipse. Que signifie ce message d'erreur:
Le type iglu.ir.TermVector ne peut pas être résolu. Il est indirectement référencé à partir des fichiers .class requis
J'ai eu une erreur dans Eclipse. Que signifie ce message d'erreur:
Le type iglu.ir.TermVector ne peut pas être résolu. Il est indirectement référencé à partir des fichiers .class requis
Réponses:
Cela signifie: "Une classe que vous utilisez a besoin d'une autre classe qui n'est pas sur le chemin des classes." Vous devez vous assurer (comme Harry Joy le suggère) d'ajouter le fichier jar requis au chemin de classe.
Il s'agit aussi probablement d'une question de confusion d'Eclipse que d'une erreur réelle. J'ai ignoré l'erreur et exécuté le service Web dont il se plaignait endpointInterface, et cela fonctionnait bien, sauf pour avoir à gérer la boîte de dialogue chaque fois que je voulais l'exécuter. Juste une autre erreur opaque qui ne me dit rien.
Cela m'arrive parfois, j'ai toujours corrigé cela avec la commande "mvn eclipse: clean" pour nettoyer les anciennes propriétés puis exécuter mvn eclipse: eclipse -Dwtpversion = 2.0 (pour un projet web bien sûr). Il y a quelques anciennes propriétés enregistrées, donc éclipse est parfois confuse.
mvn eclipse:clean
et / ou mvn eclipse:eclipse
semblent être le tour de magie pour le faire fonctionner.
J'ai eu cette erreur à cause d'un référentiel maven local corrompu .
Donc, pour résoudre le problème, tout ce que j'avais à faire était d'aller dans mon référentiel et de supprimer le dossier où se trouvait le .jar concerné, puis de forcer un update maven
dans Eclipse.
Il semble que cela ait été un problème connu (bogue 67414) qui a été résolu dans la version 3.0 ... quelqu'un a commenté qu'il se produisait également pour eux dans la version 3.4.
En attendant, la solution consiste à supprimer la bibliothèque système JRE du projet, puis à l'ajouter à nouveau.
Here are the steps:
Accédez aux propriétés du projet avec l'erreur de construction (clic droit> Propriétés)
Affichez l'onglet "Bibliothèques" dans la section "Chemin de construction"
Recherchez la "Bibliothèque système JRE" dans la liste (si elle est manquante, ce message d'erreur n'est pas un bogue d'éclipse mais un projet mal configuré)
Supprimez la «bibliothèque système JRE»
Cliquez sur "Ajouter une bibliothèque ...", sélectionnez "Bibliothèque système JRE" et ajoutez le JRE approprié pour le projet (par exemple, 'Workspace JRE par défaut')
Appuyez sur "Terminer" dans la sélection de la bibliothèque et "OK" dans les propriétés du projet, puis attendez la reconstruction du projet
Espérons que l'erreur sera résolue ...
Cette erreur se produit lorsque les classes du fichier jar ne suivent pas la même structure que celle de la structure de dossiers du fichier jar.
Par exemple, si votre fichier de classe a le package com.test.exam et que le fichier classes.jar créé à partir de ce fichier de classe a la structure test.exam ... une erreur sera générée. Vous devez corriger la structure du package de votre classes.jar, puis l'inclure dans le chemin de construction ecplipse ...
J'ai eu cette exception parce qu'eclipse fonctionnait dans une version différente de jdk, vient de changer pour la bonne, nettoyer et construire et a fonctionné!
J'ai eu un cas intéressant de ce problème avec Eclipse 4.4.2. Mon projet (P1) a référencé une classe externe (projet P2) avec deux méthodes avec le même nom mais des types d'arguments différents:
public static void setItem(Integer id) …
public static void setItem(Item item) …
Le type Item
était contenu dans un troisième projet P3, que je ne voulais pas voir ici. P1 n'a appelé que la première méthode:
ExternalClass.setItem(Integer.valueOf(12345));
Donc, la deuxième méthode, qui utilisait la Item
classe, n'a pas été utilisée, et il est vrai que P3 n'était pas dans le chemin de classe de la compilation - pourquoi devrait-il s'il n'est pas utilisé.
Toujours Eclipse m'a dit
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
La compilation à partir de la ligne de commande n'a pas produit de tels problèmes. Changer le nom de la deuxième méthode (inutilisée ici!) A également fait disparaître le problème dans Eclipse.
Ce qui a corrigé ça pour moi était right clicking on project > Maven > Update Project
Pour moi, cela se produit lorsque je mets à niveau mon jdk vers la version 1.8.0_60 avec mon ancien ensemble de jars qui est utilisé depuis longtemps. Si je reviens à jdk1.7.0_25, tous ces problèmes ont disparu. Cela semble poser un problème de compatibilité entre le JRE et les bibliothèques.
J'ai eu l'erreur lorsque je modifiais simplement certains paramètres svn et rien dans le code. Le simple nettoyage des projets a corrigé l'erreur.
Dans mon cas, j'ai créé un projet et fait son minSdkVersion=9
et targetSdkVersion=17
. J'ai utilisé généré automatiquement libs/android-support-v4.jar
. J'ai également dû utiliser l' ActionBarActivity
utilisation android-support-v7-appcomapt.jar
. J'ai donc simplement copié le android-support-v7-appcompat.jar
fichier du android-sdk/extras/andrid/support/v7/appcompat/libs
dossier et l'ai collé dans mon libs
dossier de projet . Et cela a causé l'erreur ci-dessus. Donc, fondamentalement, j'avais également besoin de mettre un android-support-v4.jar
fichier android-sdk/extras/andrid/support/v7/appcompat/libs
dans mon libs
dossier de projet . À ma connaissance, le v7.jar
fichier avait des dépendances sur le v4.jar
fichier. Donc, il avait besoin de son propre v4.jar
fichier, au lieu de mon projet, un v4.jar
fichier créé automatiquement .
Je l'ai corrigé rapidement et simplement de cette façon (j'utilise la version ADT: v21.0.0-531062 sur l'édition familiale de Windows XP)
Cela a fonctionné MAIS le problème revient tous les quelques jours. Je fais la même chose que ci-dessus et ça résout et me permet de me développer.
En plus de la cause déjà suggérée de l'absence d'un fichier de classe, cette erreur peut également indiquer un fichier de classe en double, eclipse signale cette erreur lorsqu'un fichier de classe sur le chemin de construction utilise une autre classe qui a plusieurs définitions dans le chemin de construction.
Puisque vous nous donnez très peu de détails, ce que vous avez probablement fait, ce qui est une erreur incroyablement facile à faire, c'est qu'au lieu de vous diriger vers
Build Path > Configure Build Path > Projects
et en ajoutant votre dossier de projet supplémentaire à partir de là, à la place, vous êtes allé à
Build Path > Configure Build Path > Libraries
et a ajouté votre dossier de projet à partir de là à la place.
C'est certainement le cas si votre code est correct, mais lors de la réorganisation automatique des importations via le ctrl+space
raccourci, au lieu de vos instructions d'importation faisant référence à com.your.additionalproject, vos références pointent toutes vers bin.com.your.additionalproject.
Notez le bac. Cela signifie que vous faites indirectement référence à votre classe en traitant votre autre structure de dossiers de projet comme une bibliothèque, ce qui fait que votre IDE fait tout le nécessaire pour trouver la classe exactement binaire à laquelle vous faites référence.
Pour corriger cela, supprimez le dossier des bibliothèques, ajoutez-le à la place sous l'onglet Projets et réorganisez vos importations. Votre projet devrait fonctionner correctement.
Lorsque j'utilise une nouvelle version d'Eclipse et que j'essaye d'utiliser l'espace de travail précédent que j'ai utilisé avec l'ancienne version d'Eclipse, cette erreur s'est produite.
Voici comment je résous le problème:
Cliquez avec le bouton droit sur mon projet sur l'Explorateur de packages -> Propriétés -> Chemin de construction Java -> Bibliothèques -> Je vois une erreur (signe croisé) sur la bibliothèque système JRE. Parce que le chemin est introuvable. -> Double-cliquez sur la bibliothèque système JRE -> Sélectionnez l'option "Workspace Default JRE" -> Terminer -> OK. -> BUM IL FONCTIONNE
FYI.
Dans mon cas, c'était le résultat de l'ajout d'une nouvelle dépendance à mon pom.xml
fichier.
La nouvelle dépendance dépendait d'une ancienne version d'une bibliothèque (2.5). Cette même bibliothèque était requise par une autre bibliothèque de monpom.xml
, mais elle nécessitait la version 3.0.
Pour une raison quelconque, lorsque Maven rencontre ces conflits, il omet simplement la version la plus récente. Dans Eclipse lors de la visualisation, pom.xml
vous pouvez sélectionner l'onglet "hiérarchie des dépendances" en bas pour voir comment les dépendances sont résolues. Vous trouverez ici si la bibliothèque (et donc la classe) en question a été omise pour cette raison.
Dans mon cas, c'était aussi simple que de verrouiller la version la plus récente. Vous pouvez le faire en cliquant avec le bouton droit sur l'entrée - il y a une option pour la verrouiller dans le menu contextuel.
Pointez le JRE dans le chemin de construction vers un JDK. Cela a fonctionné pour moi.