5

对于启用 jmx 且端口设置为 0 的 java 应用程序,将动态分配端口:

-Dcom.sun.management.jmxremote.port=0

找出分配了哪个端口的最佳方法是什么?我设法在 Solaris 上使用 ps 和 pfiles 找到它,希望有一个更简单的原因(以编程方式)

还有一种更好的方法可以将动态 jmx 端口分配给同一个盒子上的 java 应用程序并跟踪它们吗?

4

1 回答 1

1

这个问题在这里得到了回答

String url = sun.management.ConnectorAddressLink.importRemoteFrom(0)
        .get("sun.management.JMXConnectorServer.0.remoteAddress");
String portStr = url.substring(url.lastIndexOf(":") + 1, url.lastIndexOf("/jmxrmi"));      
int port = Integer.valueOf(portStr);
System.out.println(port);
于 2019-03-05T09:02:57.467 回答