JavaAgent入门
概述
JavaAgent 是JDK 1.5 以后引入的,也可以叫做Java代理。
JavaAgent 是运行在 main方法之前的拦截器,它内定的方法名叫 premain ,也就是说先执行 premain 方法然后再执行 main 方法。
主要功能如下:
- 可以在加载class文件之前做拦截,对字节码做修改;
- 可以在运行期对已加载类的字节码做变更;
- 获取所有已经加载过的类;
- 获取所有已经初始化过的类;
- 获取某个对象的大小;
- 将某个jar加入到Bootstrap classpath中作为高优先级被BootstrapClassloader加载;
- 将某个jar加入到classpath中供AppClassloader取加载;
按照加载时机可以分为两种:
- 程序启动前
- 程序启动后