Имя файла класса должно заканчиваться.класс exception в Java Поиск


Я надеялся, что кто-то может помочь мне с проблемой, которую я испытываю, используя функцию поиска java в Eclipse в конкретном проекте.

при использовании поиска java на одном конкретном проекте, я получаю сообщение об ошибке говоря Class file name must end with .class (см. трассировку стека). Это, кажется, не происходит на всех проектах, только один конкретный, так что, возможно, есть что-то, что я должен попытаться восстановить?

Я уже пробовал Project -> Clean... и закрытие Eclipse, удаление всех встроенные файлы классов и перезапуск Eclipse безрезультатно.

единственная ссылка, которую я смог найти в Google для этой проблемы, находится в http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx, но, к сожалению, его решение (закрытие, удаление файлов классов, перезапуск) не сработало для меня.

если кто-нибудь может предложить что-то попробовать, или есть еще информация, которую я могу собрать, которая может помочь отследить ее, я был бы очень признателен указатель.

Version: 3.4.0
Build id: I20080617-2000

также только что нашел этот поток -http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - что означает, что та же проблема может возникнуть, когда имя проекта содержит точку. К сожалению, это не так в моей настройке, поэтому я все еще застрял.

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)

спасибо Макдауэлл, закрытие и открытие проекта, кажется, исправили его (по крайней мере, на данный момент).

6 64

6 ответов:

еще два механизма общего назначения для фиксации некоторых особенностей Eclipse:

  • закрыть и открыть проект
  • удалить проект (но не с диска!) и реимпортировать его как существующий проект

в противном случае bugs.eclipse.org может дать ответ.

Если рабочее пространство кэширует что-то сломанное, вы можете удалить его, потыкав в рабочее пространство/.метаданные./Плагины. Большая часть этого материала довольно скоротечна (хотя резервное копирование и наблюдение за удаленными настройками).

комментарий #9 to bug 269820 объясняет, как удалить индекс поиска, который, по-видимому, является решением для поврежденного индекса, симптомы которого являются страшными

произошла внутренняя ошибка во время:"фильтрация элементов".
Имя файла класса должно заканчиваться .класс

окне сообщения.

Как удалить индекс поиска:

  1. Закройте Eclipse
  2. удалить метаданные./Плагины/орг.затмение.JDT, предназначенным.сердечник.*/индекс
  3. удалить /.метаданные./Плагины/орг.затмение.JDT, предназначенным.core / savedIndexNames.txt
  4. начать снова затмение

получил эту ошибку на днях. Попробовал удалить все .класс-файлы и ресурсы из моей выходной папки вручную. Не получилось. Перезагрузил компьютер (WinXP). Не получилось. Закрыли мой проект в Eclipse и снова открыл его. работала!!! надеется, что это решает чью-то проблему там. Поиск объектов и действительно необходим для затмения.

Я также столкнулся с этой проблемой недавно, ниже сценарий работал для меня.

  1. Закройте Eclipse
  2. удалить <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. удалить <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. начать снова затмение

закрытие проектов не сделать трюк для меня. Я начал затмение с чистого флага, и это почему-то сработало.

просто

  • закрыть проект
  • очистить папку вручную(с)
  • открыть проект

(Eclipse 3.5 SR2, Build id: 20100218-1602)