• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクリプスで実行時、最新クラスの反映)

エクリプスで実行時、最新クラスの反映

このQ&Aのポイント
  • エクリプスでのJavaアプリケーションの実行時に最新のクラスが反映されない問題が発生しました。
  • プロジェクト管理ツールにMaven2を使用しており、該当プロジェクトをクリーンすることで最新クラスが反映されることがわかりました。
  • なぜ最新クラスが実行されなくなったのか、そして最新クラスを実行するための方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

最新のクラスが反映されないのは、実行前にコンパイルがされていないからだと思います。 多分ですが、今まではmaruuuさんのEclipseの設定で「起動前にビルド」が有効になっていたのだと思います。 自分の環境(Eclipse3.1.1+言語パック)だと以下のような感じで設定可能です。 「ウィンドウ」→「設定」→「実行/デバッグ」→「起動」 で、その画面内に「起動前に(必要に応じて)ビルド」というチェックボックスがあるのでそれにチェックします。 この設定で実行時に自動で更新したファイルのみコンパイルされます。 (Eclipseのバージョンが違っても大体同じ所に設定する所があると思います。)

maruuu
質問者

お礼

Pkakedashiさん、回答いただきありがとうございます。 早速、設定の汎用オプションをチェックしましたが、 「起動前に(必要に応じて)ビルド」にチェックは 入っていました。 確かに、環境周りだとは思うのですが。。。 すみません、せっかく教えて頂いたのに。 もうちょっと いろいろ試してみたいと思います。

その他の回答 (1)

回答No.2

自信があっただけにちょっとガーンΣ( ̄Д ̄;) でも、めげずに回答させて下さい。 Maven2を使用しているとのことですが、最新クラスが反映されなくなった直前にMavenによってclassファイルのクリーン等しませんでしたか? 自分はMavenでは無くantを使っているのですが、antでコンパイルやクリーンをした後にEclipseの方でビルドをすると修正したファイルがあるにもかかわらずコンパイルがされませんでした。 (クリーン後はclassファイルが無いにもかかわらずです。) Eclipseで再度ビルドが有効にするには、Eclipseのタブの「プロジェクト」からクリーンを行った後に、ビルドすると今度はコンパイルが通ります。 なので、一度「プロジェクト」からクリーンした後にビルドし、その後、修正→実行とした時に修正したクラスが反映されるか試してみたらいかがでしょうか? ただ、今回は何故antでコンパイルやクリーンした後にEclipseのビルドが有効になってくれないのか理由が分かっていないので、もしかすると違うかもしれません。。。 今回は、自信が有りませんので参考意見として捉えて下さい。

maruuu
質問者

お礼

Pkakedashiさん、再度 ありがとうございます! 通常 Maven2 でビルドを行う場合、 1) Maven2 clean 2) Maven2 Build 3) Eclipse 「プロジェクト」-->「クリーン」 という方法を取っていました。(ご存知とは思いますが Maven2 だけですと、実行したクラスで使っている他のクラスを 実行時に認識しない場合がありますので) そこで、ご指摘の通り、 1) Eclipse 「プロジェクト」-->「クリーン」 2) Maven2 clean 3) Maven2 Build で、実行を行うと クラスを認識しませんでしたので、再度、 4) Eclipse 「プロジェクト」-->「クリーン」 として、実行したいクラスに修正を加え、保存して実行したところ、 先週のように、すぐ最新のクラスとして 反映してくれるように なりました!(^^)v ただ、「プロジェクト」の「自動的にビルド」にチェックを 入れた後 なので、そこも原因だったのでは? という気もしてます・・・ とりあえずはうまく行きそうなので、ホッとしているところです。 原因が明確に分かっていないところが 残念ですが、 回答頂いたお陰で 良くなりましたので、本当に感謝しています。 ありがとうございました!

関連するQ&A