Java クラスの 1 つの名前を変更しましたが、Eclipse でクリーニングして再構築した後、classNotFoundException が発生しています。これは些細なことで、かつて知られていた解決策を忘れてしまったと思います! 何か案は?
編集:新しいプロジェクトを作成し、すべてのコードをその中に入れるだけで、最も遅いソリューションを実行することになりました...
Java クラスの 1 つの名前を変更しましたが、Eclipse でクリーニングして再構築した後、classNotFoundException が発生しています。これは些細なことで、かつて知られていた解決策を忘れてしまったと思います! 何か案は?
編集:新しいプロジェクトを作成し、すべてのコードをその中に入れるだけで、最も遅いソリューションを実行することになりました...
Eclipse のリファクタリングを使用しましたか? それとも、いくつかのファイルのインポートを整理する必要がありますか?
OPフィードバックに基づいて編集:
Eclipse は多くの場合、バックグラウンドで Java 開発者のために多くのことを行います。これらの中には、別のクラス ファイル内のクラス参照へのインポートが含まれています。クラスの名前を変更した場合 (そしてそれがファイルの名前が付けられた最上位クラスである場合)、コンパイラは最初にこれについて不平を言います。クラスとファイルの両方の名前を変更すると、以前のクラス名を参照していた他の Java ファイルはコンパイルされなくなります。再び機能させるには、インポート宣言と、コンパイルされていないことを示すファイル内のコード参照を確認して修正する必要があります。Eclipse はまた、たまたまインクリメンタル コンパイルを使用するだけでなく、開発中のプロジェクトのメモリ モデルを維持します。実際にエラーがないことを確認した後、clean ユーティリティを使用してもうまくいかない場合は、Eclipse を閉じてみてください。bin ディレクトリの内容を手動で削除してから、Eclipse を再起動します。これにより、プロジェクトの完全なビルドが実行されるはずです。
将来、この問題を完全に回避するには、Eclipse に組み込まれているリファクタリング ユーティリティを必ず使用してください。リファクタリングは、ファイル、クラス、メソッド、または変数名を選択し、alt+shift+r を押して新しい名前を入力するのと同じくらい簡単です。リファクタリングの利点は、開発者がアクセスできるすべてのコード参照を自動的に追跡できることです。
次回はリファクタリングを使用してください。ここまでで、既にビルドされたクラスを削除して、再度コンパイルしてみてください。
誰かが私に同様のエラーを起こし、クリーンなプロジェクトの後に運がない場合、特定の xml ファイル (私の場合は webapp/WEB-INF/spring/grape-servelet.xml など) に名前が変更された古いクラス Bean が含まれています。手動で新しいクラス名に変更すると、問題が解決します。