2

Javaファイルtest.javaがあり、Eclipseを使用して実行し、処理に時間がかかる場合、どうしてtest.javaを変更し、同時に別のインスタンスを実行できるのでしょうか。test.classファイルが1つあるはずですが、Eclipseは実行中に古いファイルをキャッシュしているようですよね?

4

2 に答える 2

5

プログラムの実行中に、クラスファイルはクラスローダーによってメモリにすでにロードされています。したがって、VMは.classファイルを必要としなくなります。したがって、ファイルシステムで.classファイルが変更されても問題ありません。

于 2013-01-23T17:03:04.697 に答える
1

javaファイルtest.javaがあり、Eclipseを使用して実行し、処理に時間がかかる場合、どうしてtest.javaを変更し、同時に別のインスタンスを実行できるのでしょうか。test.classファイルが1つあるはずですが、eclipseは実行中に古いファイルをキャッシュしているようですよね?

自動プロジェクトビルドやホットコードデプロイメントをオフにしていない限り、これは一般的には当てはまりません。Eclipseのソースファイルに対する互換性のある変更は、クラスシグネチャ自体が変更されていない限り、同等のクラスをロードしたすべてのデバッグセッションに伝播されます。

しかし、はい、Eclipseの各デバッグセッションは、事実上、独自のクラスローダーを備えた独自のプロセスです。

于 2013-01-23T17:09:35.600 に答える