このように、実行中にバイトコードを変更したいと思います。 私はアプリケーションやWebサーバーを一切実行していません。コマンドラインプログラムのためのものです。JRebelを使用してクラスのバイトコードを交換する
もちろん、私は新しいClassLoaderを作成できますが、それはパフォーマンスの観点からは実現不可能です。
私はJRebelに遭遇しましたが、これはまさにこのことを可能にするはずですが、これをアーカイブするチュートリアルはありません。
Class Car
{
public void print() { System.out.println("I am Type A"); }
}
まずIのwannaの負荷クラスCar
:それは私が欲しいものを証明するために、複数のクラスローダ
簡単な例を扱うことができないため
Javaのホットスワップは、オプションではありません
Car myCar = new Car();
いくつかのものをする
myCar.print(); // => I am Type A
変更ソースコード
sourceCode.replace("Type A", "Type b");
再コンパイルと再び
myCar.print(); // => I am Type B
私は私のポイントを明らかにした希望を、同じクラスの実行同じクラスローダに
をバイトコードを変更します。
私は次のような関数を探しています:jrebel.change( "car"、myClassloader、newByteCode []); – Martin