我想避免为进程分配特定的 TCP 端口,但仍然能够与其中的 JMX MBean 建立(本地)连接。我不断看到证据表明这应该是可能的,但我无法弄清楚我将使用什么作为 JNDI 名称来引用某些此类进程,或者像 jconsole 那样迭代所有这些进程。
最佳答案
我相信您正在寻找 Attach API它不会(表面上)使用 JNDI 名称,而只是通过 PID 连接。这不是一个坏方法,但我不确定是否所有 JVM 都实现了这个 API。这是 groovy 中的一个快速示例:
import com.sun.tools.attach.*;
VirtualMachine.list().each() { vmd ->
try {
VirtualMachine vm = VirtualMachine.attach(vmd);
println vm;
} catch (Exception e) {}
}
关于java - 冒充 'jconsole',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462450/