web-dev-qa-db-fra.com

Pourquoi Eclipse ne peut-il pas résoudre la classe dans le même package?

J'ai frappé F5 ~ 1000 fois et redémarré Eclipse (également avec -clean), supprimé/bin, mais rien n'y fait. Importer manuellement DoodleClient n'aide pas. DoodleClient existe et va parfaitement, tout fonctionnait auparavant. Cliquer sur "Importer 'DoodleClient' ..." ne fait rien.

Ce que j'ai fait avant que ce problème ne survienne:

  1. J'ai ajouté * .class à .gitignore
  2. git rm *.class
  3. Au prochain pull, des centaines de fichiers .class ont été supprimés par git

enter image description here

32
Cedric Reichenbach

Je pouvais le résoudre: Sur un autre projet (du même dépôt git), le même problème se posait sur plusieurs fichiers de différents packages. Tout ce que j'avais à faire était d'écrire un espace dans le fichier, de le supprimer à nouveau et de le sauvegarder, afin qu'Eclipse le recompile (je suppose).

Une sorte de comportement étrange ...: S

16
Cedric Reichenbach

Alternativement, vous pouvez mettre en évidence le projet:

Choisissez Clean ... dans Menu Projet et si vous avez activé l'option Build Automatically (dans le même menu), les classes seront générées à nouveau. 

71
samorai

J'ai eu la même erreur dans le projet Maven. L'exécution de Maven Clean, la fermeture du projet et la réouverture n'ont pas fonctionné pour moi. Faites un clic droit sur projet -> Maven -> Mettre à jour le projet a fonctionné pour moi. 

10

J'ai essayé d'actualiser l'espace de travail (F5) et de nettoyer le projet, mais cela n'a pas fonctionné. Ce qui a fonctionné pour moi a été de cliquer avec le bouton droit sur le projet et de sélectionner "Fermer le projet".

Une fois fermé, j'ai rouvert le projet. Cela semblait actualiser tous les fichiers du projet dans Eclipse.

6
ScottyG

Heureusement, je n'avais pas des milliers d'erreurs. pour mes problèmes de résolution de classe de plus de 20 ans, ce que j'ai fait était de:

  1. Supprimer une partie du nom de la classe incriminée
  2. Placez le curseur à la fin du fragment restant du nom de la classe, faites une suggestion automatique (Ctrl + espace) et choisissez la bonne classe parmi les suggestions.
  3. Sauvegarder

Fastidieux mais cela a fonctionné ....

4
Isaac Riley

La première chose à faire est de créer une nouvelle classe dans le même package et de vérifier si elle est visible depuis cette classe où le problème se pose.

Aussi, je ne suis pas sûr, mais vous pouvez vérifier que le nom de votre classe "D" a été changé.

et ... Vérifiez si le fichier existe réellement

2
Snake Sanders

J'ai eu le même problème. J'ai essayé d'ajouter à nouveau l'instruction avec l'appel de méthode statique et de supprimer l'ancienne. Eclipse m'a même aidé avec l'auto-complétion et a ensuite souligné à nouveau la déclaration. Dans mon cas, fermer le projet et l'importer à nouveau après cela a fonctionné. 

2
egelev

J'ai 3 projets dans mon explorateur de projet et ils ont des dépendances les uns des autres. 

Ils sont tous devenus fous et j'ai eu plus de 9000 erreurs sur les 3 projets. 

Il s'est avéré que le nettoyage de chacun d'eux dans le bon ordre (milieu, haut, bas) a tout résolu.

Nettoyer dans le bon ordre est ce qui a résolu mon problème. 

Je pensais que ça valait le coup d'être mentionné :)

2
thonnor

J'ai le même problème tous les jours et la solution est différente à chaque fois. :) Vous pouvez essayer quelque chose comme ceci:

  • Menu du projet - Nettoyer
  • Projet - Maven - Projet de mise à jour (Alt + F5)
  • Projet - Actualiser
  • Projet - Run as - Maven clean
  • Project - Run as - Maven install
  • Redémarrer Eclipse
  • Supprimer l'application du conteneur de servlet (s'il s'agit d'une application Web)
  • Priez .. :)
1
Laszlo Lugosi

Dans mon cas, la classe DoodleClient avait toutes ses lignes commentées. Ce n'est pas la façon dont j'ai écrit la classe, c'était un effet secondaire de la résolution inappropriée d'un conflit SVN. Donc, si vous venez de lancer une mise à jour de votre projet, vous voudrez peut-être vérifier à nouveau le contenu de votre fichier. 

0
Newton fan 01

Aucun des choses ci-dessus a travaillé.

Cependant, je pourrais le corriger comme ceci:

  1. Installé une nouvelle version d'Eclipse
  2. Ouvert un nouvel espace de travail
  3. Cloné mes projets Maven de mon dépôt Git dans le nouvel espace de travail
  4. Les a importés dans Eclipse en tant que projets Maven

Résultat : Eclipse retrouve les classes.

0
kiltek

Le compilateur vérifie les dépendances sur les fichiers compilés, pas sur le code source. Cela signifie donc que le compilateur ne classe pas DoodleClient.class. Pour vérifier si vous avez la classe compilée, ouvrez la vue Navigateur (Window -> Show View -> Navigator) et recherchez le répertoire contenant les fichiers .class (généralement bin/<project> ou target/classes pour Maven) et vérifiez si vous avez le fichier DoodleClient.class. Si vous ne pouvez pas:

  1. vérifiez le fichier .classpath pour voir si DoodleClient.Java apparaît dans un attribut excluding de certains classpathentry (supprimez-le de l'attribut d'exclusion s'il le fait).
  2. si vous utilisez Maven, vérifiez si DoodleClient.Java apparaît dans une balise <exclude> </ exclude> dans pom.xml.
  3. copiez les fichiers/packages Java nécessaires dans un autre dossier de votre disque, compilez DoodleClient.Java manuellement à partir de la console DOS avec javac, puis copiez DoodleClient.class dans votre dossier de classe de votre projet. J'espère que cela t'aides.
0
Luke

Faites un clic droit sur projet puis R-cliquez sur Maven puis Mettre à jour le projet

0
Meena