项目作者: hust419

项目描述 :
javaagent的示例程序.
高级语言: Java
项目地址: git://github.com/hust419/javaagentSample.git
创建时间: 2019-07-10T07:15:11Z
项目社区:https://github.com/hust419/javaagentSample

开源协议:

下载


javaagentSample

  1. javaagent的示例程序.

代码说明

maintest

被植入代码的目标程序,
通过向这个程序中的helloWorld方法中植入代码改变这个函数的行为

originalagent

javaagent的客户端, 具体要插入的逻辑

attachagent

通过这个程序,可以讲agent attach到任何一个正在运行的jvm pid上.

用法

  1. mvn package
  2. [INFO] javaagent-demo 1.0-SNAPSHOT ........................ SUCCESS [ 0.005 s]
  3. [INFO] jvm-sandbox-javaagent .............................. SUCCESS [ 0.906 s]
  4. [INFO] original-agent ..................................... SUCCESS [ 1.347 s]
  5. [INFO] main-test .......................................... SUCCESS [ 0.084 s]
  6. [INFO] attach-agent 1.0-SNAPSHOT .......................... SUCCESS [ 0.556 s]

permain的加载方式

  1. java -javaagent:originalagent/target/original-agent-jar-with-dependencies.jar=args1 -jar maintest/target/main-test-1.0-SNAPSHOT-jar-with-dependencies.jar

attach的加载方式

先把test jar启动起来.

  1. java -jar maintest/target/main-test-1.0-SNAPSHOT-jar-with-dependencies.jar

找到进程号, 然后attach上去

  1. java -jar -Xbootclasspath/a:/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/lib/tools.jar attach-agent-1.0-SNAPSHOT-jar-with-dependencies.jar 28971