Le nom du fichier de classe doit se terminer par l'exception .class dans la recherche Java

StackOverflow https://stackoverflow.com/questions/6816

  •  08-06-2019
  •  | 
  •  

Question

J'espérais que quelqu'un pourrait m'aider avec un problème que je rencontre en utilisant la fonction de recherche Java dans Eclipse sur un projet particulier.

Lorsque j'utilise la recherche Java sur un projet particulier, je reçois un message d'erreur indiquant Class file name must end with .class (voir trace de pile ci-dessous).Cela ne semble pas se produire sur tous les projets, juste sur un seul, alors peut-être y a-t-il quelque chose que je devrais essayer de reconstruire ?

j'ai déjà essayé Project -> Clean...et fermer Eclipse, supprimer tous les fichiers de classe construits et redémarrer Eclipse en vain.

La seule référence que j'ai pu trouver sur Google pour le problème est à http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx, mais malheureusement sa solution (fermeture, suppression des fichiers de classe, redémarrage) n'a pas fonctionné pour moi.

Si quelqu'un peut suggérer quelque chose à essayer, ou si je peux rassembler d'autres informations qui pourraient aider à le retrouver, j'apprécierais grandement les pointeurs.

Version: 3.4.0
Build id: I20080617-2000

Je viens également de découvrir ce fil - http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - ce qui indique que le même problème peut se produire lorsque le nom du projet contient un point.Malheureusement, ce n'est pas le cas dans ma configuration, donc je suis toujours bloqué.

Caused by: java.lang.IllegalArgumentException: Class file name must end with .class
at org.eclipse.jdt.internal.core.PackageFragment.getClassFile(PackageFragment.java:182)
at org.eclipse.jdt.internal.core.util.HandleFactory.createOpenable(HandleFactory.java:109)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1177)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:223)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:506)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:551)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:129)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.initializeReferences(RenameTypeProcessor.java:594)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.doCheckFinalConditions(RenameTypeProcessor.java:522)
at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:45)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:225)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:160)
at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:77)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4650)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:92)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Merci McDowell, la fermeture et l'ouverture du projet semblent avoir résolu le problème (du moins pour le moment).

Était-ce utile?

La solution

Deux mécanismes plus généraux pour corriger certaines particularités d'Eclipse :

  • Fermer et ouvrir le projet
  • Supprimez le projet (mais pas du disque !) et réimportez-le en tant que projet existant

A défaut, bugs.eclipse.org pourrait apporter la réponse.

Si l'espace de travail met en cache quelque chose de cassé, vous pourrez peut-être le supprimer en fouillant dans espace de travail/.metadata/.plugins.La plupart de ces éléments sont assez transitoires (bien qu'ils sauvegardent et surveillent les préférences supprimées).

Autres conseils

Commentaire #9 au bug 269820 explique comment supprimer l'index de recherche, ce qui semble être la solution à un index corrompu dont les symptômes sont les redoutés

Une erreur interne s'est produite lors de :"Filtrage des éléments".
Le nom du fichier de classe doit se terminer par .class

messagerie.

Comment supprimer l'index de recherche :

  1. Fermer l'éclipse
  2. Supprimer <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. Supprimer <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Redémarrez Eclipse

J'ai eu cette erreur l'autre jour.J'ai essayé de supprimer manuellement tous les fichiers et ressources .class de mon dossier de sortie.Cela n'a pas fonctionné.J'ai redémarré mon ordinateur (WinXP).Cela n'a pas fonctionné.J'ai fermé mon projet dans Eclipse et l'ai rouvert. Travaillé!!! J'espère que cela résoudra le problème de quelqu'un.Les fonctionnalités de recherche et vraiment essentielles à Eclipse.

J'ai également rencontré ce problème récemment, le scénario ci-dessous a fonctionné pour moi.

  1. Fermer l'éclipse
  2. Supprimer <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. Supprimer <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Redémarrez Eclipse

Clôturer les projets n’a pas fait l’affaire pour moi.J'ai démarré Eclipse avec l'indicateur -clean et cela a fonctionné pour une raison quelconque.

Juste

  • Fermer le projet
  • Effacer manuellement les dossiers de sortie
  • Projet ouvert

(Eclipse 3.5 SR2, identifiant de build :20100218-1602)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top