类文件名必须以Javasearch中的.classexception结尾

我希望有人可以帮我解决我在一个特定的项目中使用Eclipse中的Javasearchfunction的问题。

当在一个特定的项目上使用javasearch时,我得到一个错误消息,说明Class file name must end with .class (见下面的栈跟踪)。 这似乎没有发生在所有的项目上,只有一个特定的一个,所以也许我应该尝试重build?

我已经尝试了Project -> Clean …和closuresEclipse,删除所有生成的类文件,并重新启动Eclipse无济于事。

我在Google上find的唯一参考资料是http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx ,但不幸的是他的解决scheme(closures,删除类文件,重新启动)没有为我工作。

如果有人可以提出一些build议,或者有更多的信息可以帮助我们追踪这些信息,我会非常感谢这些指标。

 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) 

感谢McDowell,closures和打开这个项目似乎已经解决了它(至less现在)。

另外两个通用的机制来修复一些Eclipse的特性:

  • closures并打开该项目
  • 删除项目(但不是从磁盘!)并重新导入它作为一个现有的项目

否则, bugs.eclipse.org可能会提供答案。

如果工作空间正在caching某些内容,可以通过在工作空间/.metadata/.plugins中进行删除来删除它。 大部分东西是相当短暂的(虽然备份和观察删除偏好)。

对错误269820的评论#9解释了如何删除search索引,这似乎是一个腐败索引的解决scheme,其症状是令人头疼的

在“项目筛选”期间发生内部错误。
类文件名必须以.class结尾

消息框。

如何删除search索引:

  1. closuresEclipse
  2. 删除<workspace> /。metadata / .plugins / org.eclipse.jdt.core / * .index
  3. 删除<workspace> /。metadata / .plugins / org.eclipse.jdt.core / savedIndexNames.txt
  4. 再次启动Eclipse

有一天这个错误。 试图手动删除我的输出文件夹中的所有.class文件和资源。 没有工作。 重新启动我的电脑(WinXP)。 没有工作。 在Eclipse中closures我的项目并再次打开它。 工作! 希望这解决了那里的某些问题。 search工具和Eclipse真正必不可less的。

最近我也遇到过这个问题,下面的情况对我有用。

  1. closuresEclipse
  2. 删除<workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. 删除<workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. 再次启动Eclipse

closures这些项目对我来说并没有什么窍门。 我用-clean标志开始了日食,并且出于某种原因。

只是

  • closures项目
  • 清除手动输出文件夹
  • 打开项目

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