67

特定のプロジェクトでEclipseのJava検索機能を使用しているときに、誰かが私を助けてくれることを望んでいました。

特定のプロジェクトで Java 検索を使用すると、エラー メッセージが表示されますClass file name must end with .class(以下のスタック トレースを参照)。これはすべてのプロジェクトで発生しているわけではなく、特定の 1 つのプロジェクトで発生しているようです。

私はすでに試しました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)

McDowell に感謝します。プロジェクトを閉じて開くと、(少なくとも今のところ) 修正されたようです。

4

6 に答える 6

62

いくつかの Eclipse の特異性を修正するための、さらに 2 つの汎用メカニズム:

  • プロジェクトを閉じて開く
  • プロジェクトを削除し (ディスクからではなく!)、既存のプロジェクトとして再インポートします。

それができない場合は、bugs.eclipse.orgが答えを提供してくれるかもしれません。

ワークスペースが壊れたものをキャッシュしている場合、 workspace/.metadata/.pluginsをいじって削除できる場合があります。そのほとんどはかなり一時的なものです (ただし、削除された設定をバックアップして監視します)。

于 2008-08-09T16:31:32.623 に答える
7

先日、このエラーが発生しました。出力フォルダーからすべての .class-files とリソースを手動で削除しようとしました。うまくいきませんでした。コンピューターを再起動しました (WinXP)。うまくいきませんでした。Eclipse でプロジェクトを閉じて、もう一度開きました。働いた!!! これが誰かの問題を解決することを願っています。検索機能は、Eclipse にとって本当に不可欠です。

于 2008-11-20T12:58:19.360 に答える
5

私も最近この問題に遭遇しました。以下のシナリオでうまくいきました。

  1. エクリプスを閉じる
  2. 消去<workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. 消去<workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Eclipseを再起動します
于 2009-08-03T04:54:45.730 に答える
3

プロジェクトを閉じても、うまくいきませんでした。-clean フラグを付けて日食を開始しましたが、何らかの理由で機能しました。

于 2009-12-14T19:57:12.307 に答える
2

ただ

  • プロジェクトを閉じる
  • 手動出力フォルダをクリア
  • プロジェクトを開く

(Eclipse 3.5 SR2、ビルド ID: 20100218-1602)

于 2011-03-23T10:11:36.643 に答える