标签:
Attach API是Sun公司提供的一套扩展API,它并不是Java的标准API。顾名思义,Attach,为JVM附加某些程序。简单来说,就是把一个程序连接到一个正在运行的JVM上,连接之后,这段程序就可以在JVM中运行。这段程序被称为JVMTI Agent程序。
我们使用它可以很方便地在运行过程中动态地设置加载代理类(JVMTI Agent),使我们能方便的监控一个JVM,运行一个外加的代理程序。
了解JVMTI Agent看这里:JVMTI是什么
Attach API功能上非常简单,主要提供了如下几个功能:
获取当前所有JVM实例的描述
例子:
public class TestAgent {
public static void main(String[] args) throws AttachNotSupportedException, IOException, AgentLoadException, AgentInitializationException {
List<VirtualMachineDescriptor> list = VirtualMachine.list();
for (VirtualMachineDescriptor vmd : list) {
System.out.println("pid:" + vmd.id() + ":" + vmd.displayName());
}
}
}
执行结果如下:
pid:8536:com.test.jvmti.TestAgent
pid:6697:
为指定JVM加载Agent程序
在《如何编写JVMTI agent程序》这篇文章中有一个完整的实例,清楚的讲解了通过AttachAPI为指定JVM加载Agent程序,具体如下:
了解JVMTI Agent程序看这里:如何编写JVMTI agent程序
Java千百问_08JDK详解(016)_AttachAPI是什么
标签:
原文地址:http://blog.csdn.net/ooppookid/article/details/51864968