我已经编写了一个带有premain
方法的类,并且在该方法中我添加了一个ClassFileTransformer
to Instrumentation
( Instrumentation.addTransformer()
)。
我调用了一个应用程序
java -javaagent:<path_to_agnet.jar> <application>
但是ClassFileTransformer.transform()
方法没有被调用。
我观察到premain
正在调用它。
我还观察到,如果我调用Instrumentation.retransformClasses()
, thenClassFileTransformer.transform()
就会被调用。
在第一个定义 ( Classloader.defineClass()
) 中,transform()
没有调用方法。
任何线索可能是什么问题?
注意:如果有任何帮助,我可以发布源代码。
问候,雷吉夫。