Java 使用带有临时端口的JMX服务器时,如何获取服务器端口号?

Java 使用带有临时端口的JMX服务器时,如何获取服务器端口号?,java,rmi,jmx,mbeans,Java,Rmi,Jmx,Mbeans,使用以下选项启动Java应用程序时: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=0 -Dcom.sun.management.jmxremote.local.only=false Java使用临时端口,这对于避免冲突非常有用

使用以下选项启动Java应用程序时:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=0
-Dcom.sun.management.jmxremote.local.only=false
Java使用临时端口,这对于避免冲突非常有用

是否可以从应用程序中以编程方式获取实际端口(或连接URL)

    String url = sun.management.ConnectorAddressLink.importRemoteFrom(0)
            .get("sun.management.JMXConnectorServer.0.remoteAddress");
    System.out.println(url);
这将像打印URL一样打印

service:jmx:rmi:///jndi/rmi://hostname:57025/jmxrmi