假装是'jconsole'

时间:2010-12-16 15:34:50

标签: java jmx

我想避免为进程分配特定的TCP端口,但仍然能够与它们内部的JMX MBean建立(本地)连接。我一直看到证据表明这应该是可能的,但是我无法弄清楚我将用作JNDI名称来引用某些这样的过程,或者像jconsole那样迭代所有这些过程。

1 个答案:

答案 0 :(得分:1)

我相信你正在寻找不会(向外)使用JNDI名称而只是通过PID连接的Attach API。这不是一个坏的方法,但我不确定所有 JVM是否实现此API。这是groovy中的一个简单例子:

import com.sun.tools.attach.*;

VirtualMachine.list().each() { vmd ->
    try {
        VirtualMachine vm = VirtualMachine.attach(vmd);
        println vm;
    } catch (Exception e) {}
}