web-dev-qa-db-ja.com

Eclipseが同じパッケージのクラスを解決できないのはなぜですか?

F5を約1000回押し、Eclipseを再起動し(-cleanを使用)、/ binを削除しましたが、何も役に立ちません。 DoodleClientを手動でインポートしても役に立ちません。 DoodleClientが存在し、完全に問題ありません。以前はすべて機能していました。 「 'DoodleClient'をインポート...」をクリックしても何も起こりません。

この問題が発生する前に私がしたこと:

  1. * .classを.gitignoreに追加しました
  2. git rm *.class
  3. 次のプルで、.classファイルのhundertsはgitによって削除されました

enter image description here

35

私はそれを解決することができました:別のプロジェクト(同じgitリポジトリから)で、異なるパッケージのいくつかのファイルで同じ問題がありました。私がしなければならなかったのは、ファイルに空白を書き込み、それを再び削除して保存することでした。そのため、Eclipseはそれを再コンパイルしました(推測します)。

ある種の奇妙な行動...:S

18

または、プロジェクトを強調表示できます:

プロジェクトメニューからClean ...を選択し、(同じメニューで)Build Automaticallyオプションをアクティブにした場合、クラスが新たに生成されます。

77
samorai

Mavenプロジェクトでも同じエラーが発生しました。 Maven Cleanを実行してプロジェクトを閉じてから再度開くと、うまくいきませんでした。プロジェクトを右クリック-> Maven->プロジェクトを更新してください。

11

ワークスペース(F5)を更新してプロジェクトをクリーンアップしようとしましたが、それではうまくいきませんでした。私にとってうまくいったのは、プロジェクトを右クリックして「プロジェクトを閉じる」を選択することでした。

閉じたら、プロジェクトを再度開きました。これにより、Eclipseのプロジェクトのすべてのファイルが更新されたようです。

6
ScottyG

幸いなことに、1000のエラーはありませんでした。私の20以上のクラス解決の問題に対して、私がしたことは:

  1. 問題のあるクラスの名前の一部を削除する
  2. (クラス名の残りのフラグメントの)末尾にカーソルを置き、自動提案(Ctrl +スペース)を行い、提案から正しいクラスを選択します
  3. セーブ

面倒ですが、うまくいきました。

4
Isaac Riley

最初に行うことは、同じパッケージに新しいクラスを作成し、問題が発生しているこのクラスから見えるかどうかを確認することです。

また、定かではありませんが、クラス「D」の名前を別の名前に変更してください。

そして...ファイルが実際に存在するかどうかを確認します

2
Snake Sanders

同じ問題がありました。静的メソッド呼び出しでステートメントを再度追加し、古いものを削除しようとしました。 Eclipseはオートコンプリートの手伝いさえしてくれ、その後再び声明に下線を引いた。私の場合、プロジェクトを閉じて、それが機能した後に再びインポートしました。

2
egelev

プロジェクトエクスプローラーに3つのプロジェクトがあり、それぞれに依存関係があります。

それらはすべて狂ってしまい、3つのプロジェクトすべてで9000以上のエラーが発生しました。

それらをそれぞれ正しい順序(中、上、下)でクリーニングすると、すべてが解決されることがわかりました。

問題を解決したのは、正しい順序でのクリーニングです。

言及する価値があると思った:)

2
thonnor

私は毎日同じ問題を抱えており、解決策は毎回異なります。 :)これらのようなものを試すことができます:

  • プロジェクトメニュー-クリーン
  • プロジェクト-Maven-プロジェクトの更新(Alt + F5)
  • プロジェクト-更新
  • プロジェクト-実行-Maven clean
  • プロジェクト-実行-Mavenインストール
  • Eclipseを再起動します
  • サーブレットコンテナからアプリケーションを削除する(Webアプリの場合)
  • 祈って.. :)
1
Laszlo Lugosi

コンパイラは、ソースコードではなく、コンパイルされたファイルの依存関係をチェックします。そのため、コンパイラはDoodleClient.classをファイルしません。コンパイルされたクラスがあるかどうかを確認するには、ナビゲータービュー(Window -> Show View -> Navigator).classファイル(通常はbin/<project>またはtarget/classes for Maven)そして、DoodleClient.classファイルがあるかどうかを確認します。できない場合:

  1. .classpathファイルをチェックして、DoodleClient.Javaがいくつかのclasspathentryのexcluding属性に表示されるかどうかを確認します(存在する場合は、除外属性から削除します)。
  2. mavenを使用している場合は、DoodleClient.Javaがpom.xmlの<exclude> </ exclude>タグに表示されるかどうかを確認してください
  3. 必要なJava files/packagesをディスク上の他のフォルダーにコピーし、dosコンソールからjavacを使用してDoodleClient.Javaを手動でコンパイルし、プロジェクトのクラスフォルダーにDoodleClient.classをコピーします。役立ちます。
1
Luke

私の場合、DoodleClientクラスにはすべての行がコメントされていました。私がクラスを書いた方法ではなく、SVNの競合を不適切に解決する副作用でした。そのため、プロジェクトの更新を実行したばかりの場合は、ファイルの内容を再度確認することをお勧めします。

0
Newton fan 01

なし上記のことは機能しました。

しかし、私はfix次のようにできました:

  1. 新しいEclipseバージョンをインストールしました
  2. 新しいワークスペースを開きました
  3. MitプロジェクトをGitリポジトリから新しいワークスペースに複製しました
  4. それらをEclipseにMavenプロジェクトとしてインポートしました

結果:Eclipseは再びクラスを見つけます。

0
kiltek

成功なしで上記の提案の多くを試してみました(Eclipseの再起動、複数回のクリーニング、自動提案など)。このバインドから抜け出したのは、以前のコミット(gitを使用している)へのハードリセット、ビルド(今回は成功)、そしてプロジェクトの最新ソースの再プルとリビルドでした。

0
elder elder

projectを右クリックしてからR -Mavenを右クリックしてからプロジェクトの更新

0
Meena