核心问题:探针是如何进入目标 JVM,并把 Sandbox 拉起来的。
先说结论
Java Agent 进入 JVM 主要有两种方式:启动前的 premain,以及运行中的 agentmain。
两条路径入口不同,但最终都要拿到 Instrumentation,解析参数,并启动 Sandbox 运行时。
成熟 Agent 的入口应该很薄,复杂增强逻辑应该放到运行时和模块里。
这篇文章能带你完成什么
你不用先掌握所有 Java Agent 概念。本篇先让你做出一个能运行的小结果:复制代码、执行命令、看到输出。
跑通以后,再回头看图和源码,你会更容易理解这个机制在 JVM Sandbox 里负责哪一块。整个专栏都按这个节奏来:先做出来,再解释为什么。
先把几个词讲明白
Java Agent 入口
Java Agent 是 JVM 提供的一种扩展机制,可以在应用启动前或运行中把一段探针逻辑加载进目标 JVM。
可以怎么理解
premain 像“随车出厂安装”,应用启动时就进入;agentmain 像“运行中加装设备”,应用已经启动后再 attach 进去。
本篇先抓住什么
这一篇要让你明白:Agent 入口只负责
订阅专栏 解锁全文

118

被折叠的 条评论
为什么被折叠?



