JavaAgent
参考资料一文讲透Java Agent是什么玩意?能干啥?怎么用? - 知乎 (zhihu.com)
背景JVMPI(Java Virtual Machine Profiler Interface)与JVMDI(Java Virtual Machine Debug Interface)是java在1.5之前提出的jvm规范,分别要求jvm提供分析与调试的接口,1.5之后将两类接口合称为JVMTI(JVM Tool Interface)
JAVA AGENT在JDK1.5之后,jvm提供了探针接口Instrumentation,底层依赖JVMTI的native api,在1.6之后,jvm提供了attach接口,同样是依赖JVMTI的native接口。
可认为Java Agent可以理解为是一种特殊的Java程序,是调用Instrumentation接口的客户端。
java agent无法单独启动,必须依附在一个java应用程序上,与其共享同一个jvm,通过Instrumentation接口与jvm进行交互。
Java Agent有两种执行方式:
premain
在应用运行之前会通过 ...