您的位置:首页 > 编程语言 > Java开发

Java千百问_08JDK详解(016)_AttachAPI是什么

2016-07-09 07:50 375 查看
点击进入_更多_Java千百问

1、AttachAPI是什么

Attach API是Sun公司提供的一套扩展API,它并不是Java的标准API。顾名思义,Attach,为JVM附加某些程序。简单来说,就是把一个程序连接到一个正在运行的JVM上,连接之后,这段程序就可以在JVM中运行。这段程序被称为JVMTI Agent程序。

我们使用它可以很方便地在运行过程中动态地设置加载代理类(JVMTI Agent),使我们能方便的监控一个JVM,运行一个外加的代理程序。

了解JVMTI Agent看这里:JVMTI是什么

2、AttachAPI提供那些接口

Attach API功能上非常简单,主要提供了如下几个功能:

获取当前所有JVM实例的描述。

为指定JVM加载Agent程序。

获取当前所有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程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: