6
コアJDK 5クラスのメソッドに「insertBefore」を追加します。なんらかの理由でうまくいかない。ここでは、コードの例を示します。javassist Javaコアクラスで計測することは可能ですか?ブートストラップクラスローダーによってロードされるクラス
ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter");
CtMethod ctMethod = ctClass.getDeclaredMethods()[0];
ctMethod.insertBefore("System.out.println(\"WORKED\");");
ctClass.toClass();
com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatterはJDKにバンドルされている、それはrt.jarの内側です。上のスニペットの後、私はXSMessageFormatterクラスを強制的に実行するいくつかのコードを実行しますが、挿入されたコードは決して実行されません。私は自分のクラスでしか動かすことができません。このコードは単純なスタンドアロンアプリとして実行されています。
アイデア?