eclipseのリフレッシュって何しているの?
eclipseでコードを修正したらとりあえず、リフレッシュ。
開発現場でなんとなくしている場合もあると思います。
javaであればリフレッシュをすれば、
クラスファイルが作られたりしていますが、
実は正確にはクラスファイルを作るというものではないのです。
先に結論から言いますが、
リフレッシュすることによって追加・変更・削除されたファイルをeclipseが認識する
ということです。
これから少し解説していきます。
公式サイトの説明
なぜ?そう言い切れるのか?
答えは簡単。
公式サイトの説明に書いてあります。
まずは原文を紹介します。
Refresh
引用元:Eclipse公式サイトのHelp
his command refreshes the Workbench’s view of the selected resource and its children. For example, this is used when you create a new file for an existing project outside the Workbench and want the file to appear in the Project Explorer view.
Workbench User Guide > Reference > User interface information > Views and editors
のRefreshから抜粋
これを日本語訳にすると以下になります。
このコマンドは選択したリソースとその子のワークベンチのビューを更新します。
例えば、これは、ワークベンチの外部にある既存のプロジェクト用に新しいファイルを作成し、そのファイルをプロジェクトエクスプローラービューに表示する場合に使用されます。
ここでワークベンチという、言葉があります。
ここでは「Eclipseが認識するフォルダ」という意味になります。
ワークベンチという言葉を「Eclipseに置き換えると以下のように読み替えられます。」
このコマンドは選択したリソースとその子のEclipseのビューを更新します。
例えば、これは、Eclipseの外部にある既存のプロジェクト用に新しいファイルを作成し、そのファイルをプロジェクトエクスプローラービューに表示する場合に使用されます。
ちょっと回りくどい形にはなりましたが、
つまり、
リフレッシュをすることによって、追加・変更・削除されたファイルをeclipseが認識しますよ。
と、私は解釈しています。
つまるところ、classを作成するわけではないのです。
Classファイルが作成されているのか?
そうすると、最初の疑問に戻ります。
リフレッシュは
追加・変更・削除されたファイルをeclipseが認識するだけです。
では、なぜリフレッシュされているのか?
これはeclipseの親切機能だと思ってもらえば良いと思います。
eclipseは追加・変更・削除されんだから当然、コンパイルするよね。ビルドパスにファイル持っていくよね。
と判断し、自動的にクラスファイルをビルドしています。
たまに反映されないときがある?
なんてことがあると思います。
そんな時は問題を切り分けてください。
- eclipse内でファイルを認識していない
- クラスファイルが作成されない
この2つは全く別問題です。
なので、まずは
eclipse内でファイルを認識しているか?
を確認してください。
プロジェクトエクスプローラービュー(デフォルトでeclipseの左側に出ているナビゲーションビューのこと)
に対象のファイルがあれば認識しています。
それで認識していなければ、
今度はクラスファイルのビルドに問題があるということです。
そもそもjavaで構文エラーがあるのかもしれません。
最後に
結論として、
リフレッシュすることによって追加・変更・削除されたファイルをeclipseが認識する
ということです。
Eclipseに限らず、このような有名なアプリケーションは公式のドキュメントに書かれていることが多いです。
それを見つけて、自分なりに答えを出していば
手に職がついたエンジニアライフを送れると思います