bookmark_border【eclipse】謎の不具合に遭遇したときに試すclean【Java】

次のような謎の不具合に遭遇したときまず試す操作のメモです。

  • コードの文法は合っているのに文法エラーの指摘がある
  • パッケージ・エクスプローラーなどで表示されるディレクトリ構造が変
  • サーブレットでサーバーが起動できない

まず試す:プロジェクトのクリーン

[プロジェクト]→[クリーン]→[すべてのプロジェクトをクリーン]→[Enter]

これは何

生成済のclassファイル(プロジェクトのビルド時に出力されるファイル)などを全部消します。

eclipseはビルド時間の短縮を目的に、コードに変更があったとき変更箇所だけをビルドし直しています。この操作でその生成済みの成果物を一度全て消すことで、eclipseはサーブレットやJavaプロジェクト全体を次回 一からビルドし直してくれます

奥の手:eclipseのclean起動

Windows

  1. eclipseを開いているなら終了する
  2. eclipseが入っているフォルダを開く
  3. eclipse.exe -clean.cmd をダブルクリック (eclipse.exeではなく)

Mac

  1. eclipseを開いているなら終了する。(command + Q などで完全に)
  2. 「ターミナル」を起動する
  3. 次のコマンドを実行する
    • open eclipse.appのフルパス --args -clean
コマンドの例:
open /Applications/Eclipse_2019-09.app --args -clean

eclipse.appのフルパスを入力する楽な方法:

  1. eclipse.appが入っているフォルダをFinderで開く
  2. eclipse.appをFinderからターミナルにドラッグ&ドロップ

これは何

eclipseが保持しているキャッシュを削除+再作成してeclipseを起動します。

キャッシュにはプロジェクト内のファイルやディレクトリ構造の情報が含まれており、何かの拍子にそれが壊れると実際の構造とeclipse上での表示がずれたり、他の問題を引き起こしたりします。

パッケージ・エクスプローラーでF5キーを押してファイルシステム側の構造を再読み込みする方法もありますが、キャッシュを一旦作り直してもらったほうが起こりうる他の何らかの問題も回避できると考えて何かがおかしいときはこれを実行しています。