2010-12-16 65 views
0

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

回答

1

我相信你正在尋找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) {} 
}