类文件名必须以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索引:
- closuresEclipse
- 删除<workspace> /。metadata / .plugins / org.eclipse.jdt.core / * .index
- 删除<workspace> /。metadata / .plugins / org.eclipse.jdt.core / savedIndexNames.txt
- 再次启动Eclipse
有一天这个错误。 试图手动删除我的输出文件夹中的所有.class文件和资源。 没有工作。 重新启动我的电脑(WinXP)。 没有工作。 在Eclipse中closures我的项目并再次打开它。 工作! 希望这解决了那里的某些问题。 search工具和Eclipse真正必不可less的。
最近我也遇到过这个问题,下面的情况对我有用。
- closuresEclipse
- 删除
<workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
- 删除
<workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
- 再次启动Eclipse
closures这些项目对我来说并没有什么窍门。 我用-clean标志开始了日食,并且出于某种原因。
只是
- closures项目
- 清除手动输出文件夹
- 打开项目
(Eclipse 3.5 SR2,Build ID:20100218-1602)