Имя файла класса должно заканчиваться исключением .class в Поиске 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)

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

9.08.2008 15:40:30
Возможно, есть проблема с classpath? Ваш проект ссылается на какие-либо другие проекты или имеет внешние классы или фляги, от которых вы зависите?
Sam Merrell 9.08.2008 16:01:22
6 ОТВЕТОВ
РЕШЕНИЕ

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

  • Закройте и откройте проект
  • Удалите проект (но не с диска!) И повторно импортируйте его как существующий проект

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

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

62
9.08.2008 16:31:32
Close & open тоже работал для меня. Ранее я пробовал Project | Чистота ... во всем рабочем пространстве, но это не решило проблему. Мне интересно, что проект close & open делает в дополнение к очистке этого проекта.
Zsolt Török 31.05.2010 15:46:52
Закрытие и повторное открытие моих проектов мне не помогло :-( Похоже, что закрытие и повторное открытие помогает некоторым, но если это не так, вам нужно следовать совету Оливье Дагенаис
Roel Spilker 2.08.2010 16:21:13

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

7
20.11.2008 12:58:19

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

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

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

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

  1. Закрыть Затмение
  2. Удалить <рабочее пространство> /. Метаданные / .plugins / org.eclipse.jdt.core / *. Index
  3. Удалите <рабочее пространство> /. Метаданные / .plugins / org.eclipse.jdt.core / saveIndexNames.txt
  4. Запустите Eclipse снова
72
9.07.2009 17:19:16
Незначительная опечатка. 2. Удалите <workspace> .metadata.plugins \ org.eclipse.jdt.core * .index
Jon Strayer 8.07.2009 16:13:46
Это сработало и для меня. Нашел здесь: u.nu/3aqy3 Но это та же процедура. ~ Крис
cimnine 25.11.2009 13:22:33

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

  1. Закрыть Затмение
  2. удалять <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. удалять <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Запустите Eclipse снова
5
3.08.2009 04:58:35

Закрытие проектов не помогло мне. Я начал затмение с флагом -clean, и по какой-то причине это сработало.

3
17.08.2012 17:23:19
объяснение опции очистки: "если установлено значение" true ", любые кэшированные данные, используемые каркасом OSGi и средой выполнения eclipse, будут очищены. Это очистит кеши, используемые для хранения разрешения зависимостей пакета и данных реестра расширений затмения. Использование этого параметра приведет к затмение, чтобы повторно инициализировать эти кэши ".
Uğur Güneri 5.12.2014 17:28:12

Только что

  • Закрыть проект
  • Очистить вручную вывод папки
  • Открытый проект

(Eclipse 3.5 SR2, идентификатор сборки: 20100218-1602)

2
23.03.2011 10:11:36