我正在尝试使用 java.lang.instrument API 向 java.lang.Object 构造函数添加一个静态方法调用。我知道我的基础知识是正确的,因为如果我调用 System.gc() 方法,它就可以工作。我通过在有和没有仪器的情况下运行 -verbosegc 来验证这一点。如果我将方法调用更改为我自己的包中的静态类/方法,我会收到一个致命错误:
本机方法中的线程“主”致命错误中的异常:-javaagent 的处理失败
工作目录中没有创建转储文件,所以我发现很难找出问题所在。其他信息:
- 我确保静态方法类在转换之前加载到 premain 方法中
- 静态方法调用不会导致创建新对象
- 最后一个加载的类是 InterruptedIOException 虽然我认为这只是一个副作用
提前致谢。