资源简介
JavaAgent技术的Demo,agentmain方式
采用Javaassist技术实现字节码修改,VirtualMachine技术实现运行时代码织入

代码片段和文件信息
package com.reason.demo.attachagent;
import com.sun.tools.attach.VirtualMachine;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.concurrent.TimeUnit;
/**
* Created by liuruisen on 2018/11/18.
*/
public class AgentAttach {
private static String agentPath = “/Users/liuruisen/IdeaProjects/javaagent/target/javaagent-1.0-SNAPSHOT.jar“;
public static void main(String[] args) {
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Class vmClass = null;
try {
vmClass = classLoader.loadClass(“com.sun.tools.attach.VirtualMachine“);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
object vmobject = null;
try {
vmobject = vmClass.getMethod(“attach“ String.class).invoke(null args[0]);
VirtualMachine virtualMachine = (VirtualMachine) vmobject;
System.out.println(virtualMachine.id());
Method loadAgentMethod = vmClass.getMethod(“loadAgent“ String.class String.class);
loadAgentMethod.invoke(vmobject agentPath ““);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace(System.out);
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} finally {
if (null != vmobject) {
try {
vmClass.getMethod(“detach“ (Class>[]) null).invoke(vmobject
(object[]) null);
System.out.println(“Detach Success“);
} catch (Exception e) {
}
}
}
try {
while (true) {
TimeUnit.SECONDS.sleep(10);
System.out.println(“HHAHHAHAH“);
}
} catch (InterruptedException e) {
if (null != vmobject) {
try {
vmClass.getMethod(“detach“ (Class>[]) null).invoke(vmobject
(object[]) null);
System.out.println(“Detach Success“);
} catch (Exception exx) {
}
}
e.printStackTrace();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-02 16:49 demo-spring\
文件 5810 2018-11-06 20:41 demo-spring\mvnw.cmd
文件 8433 2018-11-28 22:47 demo-spring\demo-spring.iml
文件 2991 2018-11-28 22:48 demo-spring\pom.xm
文件 268 2018-11-06 20:41 demo-spring\.gitignore
目录 0 2018-11-06 20:41 demo-spring\.mvn\
目录 0 2018-11-06 20:41 demo-spring\.mvn\wrapper\
文件 116 2018-11-06 20:41 demo-spring\.mvn\wrapper\maven-wrapper.properties
文件 48337 2018-11-06 20:41 demo-spring\.mvn\wrapper\maven-wrapper.jar
文件 9113 2018-11-06 20:41 demo-spring\mvnw
目录 0 2018-12-02 16:50 demo-spring\.idea\
文件 172 2018-11-06 20:42 demo-spring\.idea\encodings.xm
目录 0 2018-11-06 20:41 demo-spring\.idea\inspectionProfiles\
目录 0 2018-11-28 22:47 demo-spring\.idea\libraries\
文件 673 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__org_apache_tomcat_em
文件 548 2018-11-28 22:47 demo-spring\.idea\libraries\Maven__org_mybatis_mybatis_3_4_6.xm
文件 583 2018-11-06 20:43 demo-spring\.idea\libraries\Maven__org_xm
文件 621 2018-11-11 17:23 demo-spring\.idea\libraries\Maven__org_apache_logging_log4j_log4j_api_2_11_1.xm
文件 692 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__com_fasterxm
文件 656 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xm
文件 671 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__com_fasterxm
文件 678 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__org_springfr
文件 722 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__com_fasterxm
文件 685 2018-11-06 20:43 demo-spring\.idea\libraries\Maven__org_springfr
文件 768 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__org_springfr
文件 664 2018-11-06 20:43 demo-spring\.idea\libraries\Maven__org_springfr
文件 789 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__org_springfr
文件 570 2018-11-11 17:24 demo-spring\.idea\libraries\Maven__com_fasterxm
文件 657 2018-11-06 20:43 demo-spring\.idea\libraries\Maven__org_springfr
文件 580 2018-11-06 20:43 demo-spring\.idea\libraries\Maven__org_hamcrest_hamcrest_core_1_3.xm
文件 616 2018-11-11 17:23 demo-spring\.idea\libraries\Maven__ch_qos_logback_logback_classic_1_2_3.xm
............此处省略148个文件信息
- 上一篇:java 幸运52游戏
- 下一篇:J2EE外文文献及翻译
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论