Dans Eclipse, qu'est-ce qui peut provoquer l'icône d'erreur «red-x» de l'Explorateur de packages lorsque toutes les sources Java se compilent sans erreur?

94

J'utilise Eclipse pour le développement Java. Toutes mes sources se compilent bien et l'application résultante se compile bien. Cependant, je reçois une notification d'erreur "red-x" dans l'Explorateur de packages.

Toutes mes sources dans ce répertoire source (trop long pour l'instantané) se compilent très bien, aucune n'affiche l'icône d'erreur "red-x".

Toute suggestion sur la façon de résoudre le problème serait très appréciée.

Alfred B. Thordarson
la source

Réponses:

167

ouais, cela arrive parfois sans raison apparente. Vous pouvez aller dans l'onglet "Problèmes" (juste à côté de la sortie de la console) et voir le message d'erreur, alors peut-être que vous pouvez le réduire de cette façon.

Jan Gressmann
la source
6
Je l'obtiens spécifiquement lorsqu'un autre composant non Java échoue à la validation (un bon exemple serait un fichier XML, comme celui de spring ou de maven).
Spencer Kormos
2
si vous voyez un problème dans la vue des problèmes, c'est une raison apparente. Je n'ai encore vu aucune erreur sans raison apparente :)
nanda
Ajout à la réponse de jan-gressman. Parfois, lorsque vous regardez dans l'onglet "Problèmes", vous constaterez que le problème vient de fichiers supplémentaires avec un trait de soulignement dans certains dossiers, par exemple __duplicatefile.java. Pour résoudre ce problème, cliquez avec le bouton droit sur le projet et sélectionnez: Afficher dans> Navigateur. Supprimez ensuite les fichiers en double avec un trait de soulignement et générez votre projet.
GraSim
3
Je rencontre cela aussi - souvent. Pour moi, cela se résume à des modifications manuelles de mon fichier POM lorsque vous utilisez Eclipse & Maven et la ligne de commande (mvn) de manière interchangeable. Pour réparer: utilisez l'onglet Problèmes pour diagnostiquer comme indiqué ci-dessus, et si c'est le POM qui est désynchronisé, vous pouvez "Mettre à jour le projet" avec Maven dans Eclipse: "Faites un clic droit" sur le projet dans l'Explorateur de packages, sélectionnez "Maven ", Sélectionnez" Mettre à jour le projet ". Assurez-vous que "Mettre à jour la configuration du projet à partir de pom.xml", "Actualiser l'espace de travail ..." et "Nettoyer les projets" sont sélectionnés.
Zack Jannsen
Bon conseil pour examiner les problèmes. Mon projet avait besoin d'être mis à jour.
downeyt
16

Cela arrive souvent lorsque j'utilise Maven, et je l'avais toujours ignoré jusqu'à ce que je trouve cette question. Dans ce cas, vous devez mettre à jour le projet (résolu en regardant dans le volet Problèmes)

Depuis le menu contextuel du projet: Maven -> Mettre à jour le projet et sélectionnez les bases de code maven disponibles

Vous pouvez également utiliser (Alt + F5) pour afficher la même fenêtre

Patrick Schaefer
la source
1
Même lorsque je lance le projet de mise à jour, cela ne résout pas le problème pour moi. Dans l'onglet problèmes, j'obtiens 100 erreurs indiquant undefined / uninitialized / ne peut pas être résolu en un type ... Toute réflexion sur la façon de se débarrasser de ce très rapide
Eswar
11

Essayez de nettoyer le projet et de le reconstruire.

éclat
la source
6

Après la construction. Actualisez le projet et s'il persiste, cliquez avec le bouton droit sur l'onglet Problèmes dans eclipse et choisissez tout supprimer.

Cela arrive souvent si vous installez maven et que les fichiers de propriétés d'éclipse ne sont pas mis à jour correctement. Même si votre projet ne comporte aucune erreur. J'espère!

AaMng
la source
Faites un clic droit dans la zone de l'onglet Problèmes et choisissez "Supprimer" - c'est ce que j'avais besoin d'entendre!
Gabriel Staples
5

Je veux commencer par remercier tous ceux qui ont répondu. Mais le nettoyage et la reconstruction n'étaient pas suffisants dans mon cas car le problème était toujours là et devait être corrigé.

Il s'est avéré qu'un de mes répertoires de paquets avait été accidentellement copié de sorte qu'un répertoire supplémentaire existait maintenant appelé "Copie de dagskra" contenant des fichiers Java avec des déclarations de paquet incorrectes. De plus, les erreurs dans ce "nouveau" répertoire n'apparaissent pas avec un "red-x" dans le package dans lequel il existe:

Instantané de l'Explorateur de packages montrant un répertoire "Copie de dagskra" erroné http://www.freeimagehosting.net/uploads/a824304b18.png

C'est le soupçon de lire l'onglet "Problèmes" :-) qui m'a tourné dans la bonne direction, donc je sélectionne cette réponse comme réponse acceptée car c'est ce dont j'avais besoin:

Instantané de l'onglet Problèmes http://www.freeimagehosting.net/uploads/dea26d5dd0.png

En espérant que cela aidera les autres ...

Alfred B. Thordarson
la source
2

Donc, après avoir constaté qu'il pourrait y avoir un package manquant dans le chemin de construction, donc le x rouge contre le projet principal, pour supprimer ceci:

1) allez dans "Configure Buildpath" du projet 2) Java Build Path -> Onglet Source - vous devriez voir le x rouge en regard du package / fichier manquant. s'il n'existe plus, il suffit de le «supprimer».

X rouge est parti! :)


la source
1

Parfois, il existe des erreurs de chemin de génération dans .project et vous devez basculer vers l'affichage des ressources pour voir réellement le fichier à l'origine de l'erreur.

JeeBee
la source
1

J'ai eu le même problème et les étapes ci-dessous ont résolu le problème:

  1. Supprimez le JRE de PROJECT> propriétés> chemin de construction java> bibliothèques.

  2. Redémarrez l'éclipse

  3. Ajouter à nouveau le JRE

  4. Reconstruisez le projet en utilisant Projet> Nettoyer et choisissez l'option pour créer automatiquement.

S'il vous plaît essayez.

soleil2
la source
Cette question a presque quatre ans, a déjà reçu une réponse, et c'est une réponse en double. Veuillez publier de nouvelles informations uniquement si elles sont susceptibles d'aider l'auteur de la question.
Sam du
Désolé pour la confusion, mais la façon dont je le vois, j'ai essayé de publier une nouvelle réponse sans dupliquer.
dim2
Je suis ici avec le même problème le 28/01/18. il est toujours bon de fournir des réponses indépendamment de l'âge de la question.
Tadele Ayelegn
1

Subversion est parfois également responsable de cela. Cela n'a peut-être rien à voir avec votre environnement. Mais, il peut y avoir un décalage entre l'état actuel et local du projet. Dans mon cas, faire une mise à jour, puis un commit sur le serveur subversion m'a fourni le résultat de nettoyage attendu sans aucun indicateur dans le projet tel que le X.

Jay Snayder
la source
Je vois que les plugins SVN pour eclipse ne sont pas très stables. J'ai des problèmes avec eux. Je les ai rejetés (sans aucune idée, juste une intuition). Ce que vous avez proposé a fonctionné pour moi +1.
Pantelis Natsiavas
0

Essayez de faire une reconstruction. J'ai constaté que les x rouges ne disparaissent pas toujours tant qu'une reconstruction n'est pas effectuée.

mdec
la source
0

J'ai rencontré un problème similaire à plusieurs reprises, ce qui se passe généralement pour moi, c'est qu'un fichier java dira qu'il ne se compilera pas dans l'éditeur de texte, mais dans l'explorateur de packages, il indiquera que la compilation est correcte.

Parfois, faire une `` reconstruction '' ou une `` construction propre '' ne fonctionne pas, les fichiers ne sont pas réellement construits (on doit supposer qu'eclipse pense que les fichiers dont il dispose sont à jour) et lorsque cela se produit, j'ouvre généralement le chemin de construction java et déplacez simplement l'une de mes dépendances vers le bas / le haut de l'ordre hiérarchique. Cela oblige Eclipse à faire une reconstruction de tout et cela semble toujours fonctionner.

Si vous rencontrez toujours des problèmes, essayez de copier le projet et voyez si vous obtenez le même comportement et, à la dernière chance, essayez de publier un bogue pour l'éclipse, cela peut prendre un certain temps pour qu'ils se corrigent, mais au moins vous savez que vous êtes entendu.

Henry B
la source
0

Pour ajouter à la réponse précédente, une manière extrême de "nettoyer" votre projet est de le supprimer (c'est-à-dire de supprimer sa référence de l'espace de travail, et non de supprimer les fichiers réels), puis de le réimporter.
Parfois, ça aide ...

VonC
la source
0

Comme d'autres l'ont dit, les mauvaises références de fichiers dans le chemin de construction sont souvent la cause.

Généralement, un fichier .jar qui a été déplacé / supprimé. Eclipse s'attend à trouver tout ce qui est référencé sur le chemin de construction à l'emplacement spécifié, et se plaindra sinon.

madlep
la source
0

FindBugs met également un red-x contre les fichiers / packages pour indiquer les erreurs d'analyse de code statique.

Rahul
la source
0

J'ai traversé ça. Mon cas était plus complexe. Le projet a été bien emballé à partir de la ligne de commande maven.

J'ai fait deux choses. 1. Une classe a de nombreuses importations qui confondent éclipse. Les nettoyer a résolu une partie du problème 2. Un cas concernait un Setter, appuyant sur F3 pour naviguer vers ce Setter bien qu'éclipse se soit plaint qu'il ne soit pas là. Alors je l'ai simplement retapé et ça a bien fonctionné (même pour tous les autres Setters)

Je suis toujours aux prises avec le super constructeur implicite Item () n'est pas défini pour le constructeur par défaut. Doit définir un constructeur explicite "


la source
0

Je rencontre aussi ces mystérieux symboles d'erreur sur les paquets de temps en temps. Un moyen de m'en débarrasser qui fonctionne pour moi est de supprimer efficacement la bibliothèque système JRE de Java Build Path et de la rajouter à nouveau.

greiball
la source
le questionneur a demandé la cause, vous avez fourni une solution de contournement
johannes
0

Ma solution qui a finalement fonctionné était de nettoyer tous les projets, de fermer l'éclipse, de nettoyer tous les projets, de fermer l'éclipse, et ainsi de suite au moins 5 à 6 fois. Finalement, tout s'est calmé et tout s'est déroulé comme prévu. La chose la plus étrange jamais !!

Et non, il n'y avait aucune erreur dans la vue Problème ou console.

Cela s'est également produit après un crash informatique. La dernière fois que cela s'est produit, tout mon espace de travail était complètement perdu. Il était toujours là sur l'ordinateur, mais quand j'essayais d'y accéder, tout était vide.

Pour une raison quelconque, les pannes informatiques sont vraiment très mal gérées par eclipse.

Stéphane Grenier
la source
0

Vous pouvez également mettre à jour le projet en cliquant sur,

Faites un clic droit sur le nom du projet -> Sélectionnez Maven -> Faites un clic droit -> Mettre à jour le projet.

Cela m'a aidé.

Merci.

abhijitcaps
la source
0

Cela peut se produire pour plusieurs raisons. Si vous avez modifié le jdk, la facette Projet aura un X rouge à côté de lui alors qu'aucun autre dossier n'affiche d'erreur. Si tel est le cas, modifiez le jdk affiché. Cela se produit parfois dans notre classe JAX-WS ( HSG

Andreas
la source
0

J'ai résolu le mien par

  • Fermer tous les autres projets (c.-à-d. Option de projet non liée)

  • Nettoyer et construire

Mon projet était Android, et c'est ce qui l'a fait.

Katedral Pillon
la source
0

Cela s'est produit lorsque j'ai téléchargé fabric.io sur Eclipse Mars, mais le redémarrage de l'ordinateur a résolu ce problème pour moi.

Sheraz Ahmad Khilji
la source
0

Dans mon cas, ce qui a résolu ce problème était simplement de fermer Eclipse et de l'ouvrir à nouveau ... Cependant, je ne sais toujours pas pourquoi cela s'est produit ou pourquoi cela a fonctionné. J'avais des problèmes pour nettoyer mon projet (il disait qu'il ne pouvait pas supprimer certains fichiers) et cela l'a résolu :):

DarkCygnus
la source
0

j'ai eu le même problème. J'ai vérifié "Problèmes" -Tab et n'ai trouvé aucun serveur pour le projet. J'ai défini le serveur. le red-x a disparu

Hao
la source
0

Vous pouvez aller dans projet-> Buildpath-> Library

S'il y a une bibliothèque marquée X, c'est-à-dire [marquée d'une croix], supprimez-la et essayez à nouveau de construire. Cela a fonctionné pour moi aussi /

Anjali
la source
0

J'ai rencontré ce problème aujourd'hui et j'ai trouvé ce lien. J'ai suivi comme mentionné par Patrick Schaefer ci-dessus et j'ai ouvert la boîte de dialogue du projet Update Maven. Cliquez sur mon projet de travail et cochez la case «Forcer la mise à jour des instantanés / versions» et «Ok». Toute la croix rouge a disparu. J'espère que cela aidera quiconque se trouve dans une situation similaire.

eshu
la source
-2

Faites un clic droit sur le projet avec des erreurs, puis dans les sous-menus sélectionnez: Maven > UpdateProject >

puis:

  • Cochez la case de tous les projets dépendants
  • sélectionnez forcer la mise à jour des instantanés
  • cliquez sur OK.

Cela a fonctionné pour moi.

glacéMeteor
la source