1 首先编写文件
package com.test;
public class MyAgent {
private static volatile Instrumentation globalInstr;
public static void premain(String args, Instrumentation inst) {
globalInstr = inst;
}
public static long getObjectSize(Object obj) {
if (globalInstr == null)
throw new IllegalStateException("Agent not initted");
return globalInstr.getObjectSize(obj);
}
}
2 编写文件manifest.MF文件
Premain-Class: com.test.MyAgent 记住中间的空格
3 将MyAgent打包成jar文件,并且需要把 manifest.MF打到jar中,用eclispe打包的时候可以选择你自定义的manifest.MF文件
4 编写 调用类
public class MainClass {
public static void main(String [] args){
System.out.println(MyAgent.getObjectSize(new Object()));
}
}
5 如果用eclipse 工具 请加上虚拟机启动参数-javaagent:D:\Users\XXXXXX\Desktop\test\size.jar(你自己打成jar的地址)
6 用eclipse工具运行 MainClass
package com.test;
public class MyAgent {
private static volatile Instrumentation globalInstr;
public static void premain(String args, Instrumentation inst) {
globalInstr = inst;
}
public static long getObjectSize(Object obj) {
if (globalInstr == null)
throw new IllegalStateException("Agent not initted");
return globalInstr.getObjectSize(obj);
}
}
2 编写文件manifest.MF文件
Premain-Class: com.test.MyAgent 记住中间的空格
3 将MyAgent打包成jar文件,并且需要把 manifest.MF打到jar中,用eclispe打包的时候可以选择你自定义的manifest.MF文件
4 编写 调用类
public class MainClass {
public static void main(String [] args){
System.out.println(MyAgent.getObjectSize(new Object()));
}
}
5 如果用eclipse 工具 请加上虚拟机启动参数-javaagent:D:\Users\XXXXXX\Desktop\test\size.jar(你自己打成jar的地址)
6 用eclipse工具运行 MainClass