Skip to content
jie.xu edited this page Aug 24, 2020 · 11 revisions

使用指南

环境要求

  1. JDK[6,11]
  2. Linux/UNIX/MacOS / Windows

本地安装

  1. 下载最新稳定版本

  2. 修改copyfile.sh中的目录地址

  3. 执行命令

    mvn clean install
    sh copyfile.sh
    

启动注入

Attach(动态注入)模式时,此工具依赖被注入应用的jvm运行时的环境变量,请确认JAVA_HOME是否存在,Agent(静态注入)模式无需此配置

attach模式启动:

java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar bootstrap.jar

选择注入进程:

图

如果输出:

Attaching to target JVM with PID: 91420
Attached to target JVM and loaded Java agent successfully

则表示注入成功

在一些情况下,如修改jdk源码,对jdk的方法进行注入,或是启动时就需要进行大量的修改,此时可以使用agent模式

agent模式启动:

-javaagent:/Users/xujie/work/ymm/jar/agent.jar=plugins=systemtime.jar

目录结构

├── zodiac-client
│   ├── agent 	agent的启动主类,premain在此
│   ├── client-bootstrap  agent启动引导,如参数解析,classLoader初始化,attach主类
│   ├── plugins	 由用户编写plugin的文件夹,用户自定义的切点,以及aop后要执行的代码主要在此编写
│   ├── runtime-common-api 	提供应用运行可引用的功能,ZodiacResource资源池在此定义
│   └── traffic-handler	执行字节码注入的核心代码
└── zodiac-common  共同的pom文件

plugins编写规范

plugins编写规范

plugins注解说明

注解说明

注入案例