プログラムの実行中にJavaコードをデバッグ/変更する方法は?


15

ノッチ(Minecraftの名声)が実行中にMinecraftをデバッグおよび変更する様子を示すビデオを見まし。彼はゲームを一時停止し、コード内の何かを変更してから、プログラムの再起動を必要とせずに変更が即座に有効になるゲームの一時停止を解除します。

これはどのように作動しますか?これを達成するためにどのような手法が使用されていますか?


1
したがって、NotchのQAプロセスの範囲です。
DeadMG

1
Stack Overflowの以前のQ&Aによると、これは、「HotSwap」クラスファイルの置換を行うJPDA機能を使用して行うことができます
-gnat

ロル、そのビデオの後にまた来ました。
Ciro Santilli新疆改造中心法轮功六四事件

回答:


4

Javaはすぐにホットスワップを実行できます。EclipseのようなIDEを使用する場合、メソッド本体を変更するために機能します。他のコードの変更を適用する場合は、ツールを使用できます。JRebelは、より多くのケースをサポートする製品です。

私はその製品のマーケティングをしたくありませんが、個人的に他の選択肢を知りません。JRebelのWebサイトには、すばらしい機能比較があります。

お役に立てば幸いです。


+1 JRebelは、EclipseなどのIDE外の「ホットコーディング」に最適です。
ジャレイン

4

ホットコード置換と呼ばれ、IDEがデバッグインターフェイスを介して実行中のコードを変更できるようにします。Java 1.4.1以降、Sun JVMでサポートされています

ただし、(市販の)JRebel JVM拡張を使用しない限り、メソッド本体内の変更に限定されます。メソッドまたはクラスを追加/削除するか、署名を変更する場合は、JVMを再起動する必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.