是否可以使用javassist java核心类进行插入?由引导类加载器加载的类

是否可以使用javassist java核心类进行插入?由引导类加载器加载的类,java,bytecode,instrumentation,javassist,Java,Bytecode,Instrumentation,Javassist,我想在核心JDK5类的方法上添加一个“insertBefore”。由于某种原因,它不起作用。下面是一个代码示例: ClassPool pool = ClassPool.getDefault(); CtClass ctClass = pool.get("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter"); CtMethod ctMethod = ctClass.getDeclaredMethods()[0]; ctMet

我想在核心JDK5类的方法上添加一个“insertBefore”。由于某种原因,它不起作用。下面是一个代码示例:

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类运行的代码,但插入的代码从未运行过。我只能在自己的课堂上使用这个。此代码作为一个简单的独立应用程序运行


有什么想法吗?

修改java核心类是个坏主意。使用Java Instrumentation API的正确方法(自Java 1.5以来)