java - 如何在端口为 0 时查找动态分配的 JMX 端口

标签 java jmx

对于java应用,当启用jmx并且端口设置为0时,会动态分配一个端口:

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

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

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

最佳答案

这个问题得到了回答here

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);

关于java - 如何在端口为 0 时查找动态分配的 JMX 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18406689/

相关文章:

java - 在 Java 6 上运行的 JMX 客户端/服务器上支持 Kerberos 身份验证/授权

jboss - jboss snmp 适配器(snmp 代理)可以扩展以支持我定义的 MIB 吗?

java - 为什么 Java 在配置 JMX 时会打开 3 个端口?

java - 在java中将深色变为亮色

hadoop - JMX-SflowAgent 停止从 aspectj 检测的 WebSphere Application Server 收集 JVM 指标

java - java中奇数和偶数循环

java - @Formula 从 spring data jpa 中的 @OneToMany 关联中计数对象

jmx - 在 Perfmon 中查看的 Java 应用程序性能计数器

java - Libgdx 像素化 GUI 效果

java - Mongo java api 忽略嵌套的 or/and 运算符