码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-07-09 08:13:14      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

点击进入_更多_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功能上非常简单,主要提供了如下几个功能:

  1. 获取当前所有JVM实例的描述
  2. 为指定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程序

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

标签:

原文地址:http://blog.csdn.net/ooppookid/article/details/51864968

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!