我的javaagent通过-javagent运行,为类提供对我的一个类的静态方法的回调。除了在系统类上,例如java / lang,java / util,在调用该方法时(使用INVOKESTATIC)抛出ClassDefNotFounderror。这样看来,它们已被检测,因为尝试了方法调用,但是存在我的用户类所没有的访问或可见性问题。我的回调类及其方法都是公共的。
我尝试将我的类添加到类路径中(而不是仅通过-javaagent加载),但这没有帮助。我需要重写一些系统类保护吗?
最佳答案
听起来您正在明确地寻找要检测的类。为什么在目标JVM执行时不使用java.lang.instrument
拦截正在加载的类?看到这个example
您可以粘贴您的代码或相关部分吗?