Chcę dodać "insertBefore" w metodzie rdzeniowej klasy JDK 5. Z jakiegoś powodu to nie działa. Oto przykład kodu:Czy jest możliwe instrument z javassist klienckich klas java? Klasy załadowane przez bootloader classloader
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 pakiecie z JDK, to wewnątrz rt.jar. Po powyższym fragmencie uruchamiam kod, który wymusza działanie klasy XSMessageFormatter, ale mój wstawiony kod nigdy nie działa. Mogę tylko sprawić, żeby to działało na moich własnych zajęciach. Ten kod działa jako prosta, autonomiczna aplikacja.
Wszelkie pomysły?