0
我想避免將特定的TCP端口分配給進程,但仍然能夠與其內部的JMX MBean建立(本地)連接。我一直看到證據表明這應該是可能的,但我無法弄清楚我將用作JNDI名稱來引用某個這樣的進程,或者像jconsole一樣遍歷所有這些進程。假裝是'jconsole'
我想避免將特定的TCP端口分配給進程,但仍然能夠與其內部的JMX MBean建立(本地)連接。我一直看到證據表明這應該是可能的,但我無法弄清楚我將用作JNDI名稱來引用某個這樣的進程,或者像jconsole一樣遍歷所有這些進程。假裝是'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) {}
}