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