Можно ли использовать базовые классы javassist? Классы, загружаемые загрузчиком классов начальной загрузки

Я хочу добавить "insertBefore" в метод основного класса JDK 5. Почему-то не работает. Вот пример кода:

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, но мой вставленный код никогда не запускается. Я могу заставить это работать только на моих собственных классах. Этот код работает как простое автономное приложение.

Есть идеи?

7
задан Rodrigo 14 March 2012 в 14:31
поделиться