2008-08-09 6 views
64

私は、特定のプロジェクトでEclipseでJava検索機能を使用している問題を誰かが助けてくれることを願っていました。クラスファイル名はJavaで.class例外で終わる必要があります。検索

特定のプロジェクトで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ですが、残念ながら彼のソリューション(閉じる、クラスファイルの削除、再起動)はうまくいかなかったのです。

誰かが何か試してみることができますか、それが原因であるかどうかを知るための情報があれば、私はその点を非常に感謝しています。 http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - - プロジェクト名にピリオドが含まれる場合、同じ問題が発生する可能性がありますを示し

Version: 3.4.0 
Build id: I20080617-2000 

もちょうどこのスレッドを発見しました。残念ながら、それは私の設定では当てはまらないので、私はまだ固執しています。

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、プロジェクトを終了して開くと、修正されたようです(少なくとも現在)。 Eclipseの特異性の一部を固定する

+0

おそらく、クラスパスに問題がありますか?あなたのプロジェクトは他のプロジェクトを参照していますか、あるいはあなたが依存している外部のクラスやジャーを持っていますか? –

答えて

62

つ以上の汎用メカニズム:

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

これが失敗すると、bugs.eclipse.orgが答えを提供するかもしれません。

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

+2

プロジェクトを閉じて開くことはやりました。ありがとうございました! – Peter

+0

クローズ&オープンも私のために働いた、私は同じ問題を抱えていた – panschk

+0

クローズ&オープンは私のためにも働いた。以前はProject |クリーン...全体の作業領域で、しかしそれは問題を解決しませんでした。私はそのプロジェクトを掃除することに加えて、どのプロジェクトがクローズ&オープンしているのだろうかと思っています。 –

7

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

71

コメント#9 to bug 269820は、症状の内部エラーが発生した時に

恐ろしいです破損したインデックスの解決策であるように思われ、検索インデックスを削除する方法について説明します。
クラスファイル名は.classで終わる必要があります。

メッセージボックス。検索インデックスを削除する方法

  1. 閉じるエクリプス
  2. > /.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. が<ワークスペースを削除<ワークスペースを削除します。 > /.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Eclipseを起動し、再び
+0

これは私が検索中にエラーを修正するために働いた(CtrlShiftT) – JodaStephen

+0

マイナータイプミス。 2.削除 .metadata.plugins \ org.eclipse.jdt.core \ *。index –

+0

これは私のためにも働いていました:http://u.nu/3aqy3これは同じ手順です。クリス – cimnine

5

最近この問題が発生しました。以下のシナリオが私の仕事でした。

  1. 閉じるEclipseは
  2. <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Eclipseを起動し、私のためのトリックをしなかったプロジェクトを閉じて再び
+0

私のために働いた!どうも! – shrini1000

3

を削除します。私はきれいな旗で日食を開始し、それは何らかの理由で働いた。

+0

クリーン・オプションの説明: "true"に設定すると、OSGiフレームワークとEclipseランタイムで使用されるキャッシュされたデータがすべて消去されます。これにより、バンドル依存性解決とeclipse拡張レジストリ・データの保管に使用されるキャッシュが消去されます。これらのキャッシュを再初期化するように強制してください。 –

2

だけ

  • 閉じるプロジェクト
  • クリアを手動で出力フォルダ(複数可)
  • オープンプロジェクト

(IDを構築し、3.5 SR2エクリプス:20100218から1602)

関連する問題