0

サーバーを停止せずにプロジェクトを更新するために、実行時に Java クラスをコンパイルすることは良い考えですか?

次の質問は、既存のオブジェクトのクラスを置き換えることはできますか? オブジェクトを再作成せずにメソッドの動作を更新することを意味します。

4

2 に答える 2

1

サーバーを停止せずにプロジェクトを更新するために実行時にJavaクラスをコンパイルすることは良い考えですか?

サーバー上で新しくコンパイルされたクラスを停止せずに更新することを意味していると思います。いつでもそれを行うことができますが、クラスが既にロードされている場合は違いはなく、jvm は古いバージョンのクラスを使用し続けます。

次の質問は、既存のオブジェクトのクラスを置き換えることはできますか? オブジェクトを再作成せずにメソッドの動作を更新することを意味します。

最初の質問と同じ答え。クラスがすでにロードされている場合、JVM は古いメソッド/動作を使用します。クラスのオブジェクトがある場合、それはすでにロードされていることを意味します。

于 2013-09-17T09:30:21.787 に答える
1

私は再配備プロセスを非常に速くしますが、それは問題ではありません。(これは常にオプションであるとは限りません) が、サーバー プロセスを 10 秒以内にコンパイル、再デプロイ、再起動できるようにしています。この状況では、動的コンパイルは必要ありません。

注: システムをデバッグしてコードを再コンパイルする場合、実行中のシステムの変更を IDE からホットスワップできます。(通常は動作しますが、変更内容によっては動作しない場合もあります)

于 2013-09-17T12:06:06.283 に答える