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

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

  •  08-06-2019
  •  | 
  •  

Вопрос

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

При использовании java search в одном конкретном проекте я получаю сообщение об ошибке со словами 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)

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

Это было полезно?

Решение

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

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

В противном случае это, bugs.eclipse.org это могло бы дать ответ.

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

Другие советы

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

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

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

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

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

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

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

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

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

Просто

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top