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

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

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

エクリプスで開発してます。 これまで javaファイルを修正・保存後、 メニューの 実行 --> Javaアプリケーション とすると、 最新のクラスが反映されて実行できていたんですが、 この一週間くらい前から 最新クラスが反映されなくなって しまいました。 プロジェクト管理ツールに Maven2 を使用しているのですが、 Maven2 で該当プロジェクトを実行 --> プロジェクトのクリーン を行うと、きちんと最新クラスが反映されます。 ちなみに、ファイル管理には SVN を使用しています。 なぜ急に、実行 --> Javaアプリケーション(もしくは 実行 --> 構成及び実行)で最新クラスが実行されなくなったのか、 また、どうやったら最新クラスを実行できるようになるのか、 分かりましたら、よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
回答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

  • Eclipseエクリプスで、カブロボを編集したい

    IBMのEclipse・エクリプス、を使って、  カブロボを、編集したいのです  クラスと、パッケージ、それと、エクリプスのプロジェクト、 の関係が良く分からないので、   エクリプスの、ジャバ、プロジェクトの、 1 新しい名前を、MyxxKrobo にして、  エクリプス、のプロジェクトを、生成して、 2、パッケージを SampleRobo として、 3、クラスネームを、 MytestKrobo と、したとき、 カブロボのこんふぃぐ、xml に書き込む、ロボットの名前は、  どうなるのですか?  アドバイスお願いします ()++)??

  • javaアプリケーションをHTML上から実行する

    JAVAアプレットの場合は、HTML上で実行するときに 目的のクラスファイルを<applet>タグで囲んで実行しますが、 これがJavaアプリケーションの場合、HTML上から Javaアプリケーションを実行することは可能なのでしょうか? また可能な場合は、どのようにしてJavaアプリケーションを 実行すればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • JAVAコンパイルと実行

    はじめまして。質問があります。 eclipseで開発したjavaのソースを実行するとき、メニューからメインクラスを指定し実行するだけでプログラム実行されますが、そのプログラムをコマンドプロンプトで実行する場合、できるプログラムとできないプログラム(例外:NoClassDefFoundError)があります。 コンパイルはeclipceのほうで勝手に.classファイルが生成されるので、そのclassファイルをjava [ファイル名]と打つだけだと思います。 実行できるプログラムとできないプログラムの違いは以下の通りです。 ・実行できるプログラム eclipseで新規でプロジェクトを作成。その直下にソースが存在し、クラスファイルも同じディレクトリに生成されます。 ・実行できないプログラム eclipseで新規でプロジェクトを作成。ソースフォルダ(src)を作成し、その下からパッケージ、クラスを作成しました。そうすると、エクスプローラでそのプロジェクトを見ると、binフォルダが生成されていました。その中にクラスファイルが生成されます。 違いはこのような感じです。実行できないプログラムをコマンドプロンプトで実行させるためにはどうしたらよいでしょうか?eclipseの使い方はだいぶわかってきたのですが、どのように動作しているか(java自体も)がわかりません。ご教授宜しくお願い致します。 OS:windows2000 開発環境:eclipse 3.0(J2SE 1.4.2_03)

    • ベストアンサー
    • Java
  • eclipseで「サーバーで実行」表示が出る

    プロジェクト作成のとき (1)「tomcatプロジェクト」から作成する (2)サーブレットも「クラスを作成」から作成していく (3)JSPも「ファイル」から作成していく というやり方をして作ると「実行」を押しても Javaアプリケーションで実行というものしかでてきません 解説本をみると内容が古いのであらゆるものが現在のeclipseとことなってて 動かし方がわからずこんなことをしています

  • JBuilderを使って、クラスファイルだけで、アプリケーションの実行結果を見る方法

    こんにちは、いつもお世話になっています。 JBuilder 2005 Fundation を使って、クラスファイルだけで、アプリケーションを動かし、動作をみる方法が分かりません。 学校の課題で、先生から、10個のクラスファイルを配布され、その他に5個のソースファイルを配布されています。 この課題にとりかかる前に、「先ず、この10個のクラスファイルを使って、アプリケーションを実行して、動作をみなさい。」という事だったのですが、その方法が分かりません。 JBuilderでソースファイルの無いプロジェクトを作り、10個のクラスファイルを直接プロジェクトのフォルダに入れて、実行させてみたのですが、、、エラーが表示されてしまいます。 これはソースファイルの無いプロジェクトなので、クラスファイルを入れるフォルダもありません。 クラスファイルを入れるフォルダは、ソースファイルをコンパイルさせると、自動的に作られるんですよね? そして、その中にコンパイルされたクラスファイルが入っていく。 でも、今あるのは、クラスファイルだけなんです。。。 JBuilderを使って、クラスファイルだけで、そのアプリケーションの動作を見たいのですが、どうしたらいいのでしょうか? よろしくお願いします。

  • 実行環境によってクラスローダーが変わる!?

    Linuxのマシンで、eclipseで実行した場合と、実行可能なJARファイルを実行した場合で、使われるクラスローダーが変わってしまい、プログラムが正常に動作しません。 eclipseから実行した場合は、"sun.misc.Launcher$AppClassLoader"が使われ。 Exportした、Runnable JAR fileを、実行した場合は"java.net.URLClassLoader"が使われます。 JARの実行はシェルにて、下記のようにしています。  export JAVA_HOME=/・・・/jdk1.6.0_30  $JAVA_HOME/jre/bin/java -jar xxxx.jar ※JAVA_HOME、CLASSPATH設定は無い状態で、シェルを実行しています。 ※JAVA_HOMEをコメントアウトしても、状況は変わりませんでした。 eclipseでは、上記シェルのJAVA_HOMEで指定したものと、ビルドパスのライブラリに指定されたものが同じパスのものであることを確認しています。 JARで実行した場合も、"sun.misc.Launcher$AppClassLoader"が使われた欲しいのですが、どうすれば良いでしょうか。 クラスローダーについて、あまり知識がなくお助けいただけないでしょうか。よろしくお願いいたします。 補足 Windows環境では、Eclipse環境でもJAR環境でも"sun.misc.Launcher$AppClassLoader"が使われ正常に動作します。 蛇足 問題個所は、Java Persistence APIのeclipselink、org.eclipse.persistence.internal.jpa.deploymentパッケージのPersistenceUnitProcessor.javaで、クラスローダーのgetResourceを使っている個所です。

  • Eclipse3.4でSVNのJAVAプロジェクト

    Eclipse3.4でプロジェクトが「Javaプロジェクト」の場合には .javaファイルの保存でそのまま.classへとコンパイルされます。 これがsubversionで管理されているJavaプロジェクトの場合、 subscripseプラグインでプロジェクトをチェックアウトしても、 「Javaプロジェクト」とは認識されていません。 この状態ですと、.javaファイルを保存しても、.classは自動では 作成(コンパイル)されません。なので実行もできません。 どうすればSubversionで管理されているプロジェクトを、コンパイルして 実行できるのか教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • htmlページからクラスファイルを実行

    お世話になります。 現在ASP.NETでの開発を行っております。 「htmlページからクラスファイルを実行」について *クラスファイルはアプリケーションに"App_Code"というフォルダを配置しその中に格納しています。 1.htmlページからクラスファイル(XXX.vb)を参照できるのか 2.htmlページからクラスファイルを参照(処理の実行)を行うにはどのようなコードの記述が必要なのか という2点について調べていますが思うような情報がありません。 どなたかご存知の方がいらっしゃいましたらお教えください。 よろしくお願いいたします。

  • ローカルファイルの復元

    SVNとeclipseを使用してします。 すでにSVNにプロジェクトが登録されてeclipseで開発が進んでいる状況です。 ローカルで修正中のソースがある状況で 誤って同じプロジェクトをsvnからcheckoutしてしまいました。 その結果、ローカルで修正していた内容が消えてしまいました。 この場合、ローカルの修正内容を復元することはできるのでしょうか?

  • vb2008でのクラスライブラリ実行に関して

    vb2008でのクラスライブラリ実行に関しての質問なのですが、 クラスライブラリで以下の内容のプロジェクトを作成しました。 プロジェクト名:TEST ファイル名:TEST1.vb '~プログラム内容~ Module D01001B Public Function Main(ByVal CmdArgs() As String) As Integer     'バッチの処理内容 End Function End Module このバッチをデバックしたいのですが、どうやらクラスライブラリは 単体ではデバックできないらしくどうすればできるのか困っています。 調べてみると新しいプロジェクトでWindowsフォームアプリケーション を選択し、フォームからボタンを押して実行する方法があるとの ことなのですがどのように記述したらよいかわかりません。 できればどのように記述すれば実行(呼び出し)できるのか教えていただけないでしょうか? 以上

専門家に質問してみよう