如何检测 JMX 代理是否为 运行,以及使用哪个端口?

How to detect if JMX agent is running, and using which port?

如果在 JVM 启动时定义了 Java 系统 属性 com.sun.management.jmxremote,则 JMX 代理将在系统 属性 [=12= 中定义的端口上启动].

但是,也有在 运行 时间启动 JMX 代理/侦听器的技术。 (参见:Monitoring and Management Using JMX Technology,部分:使用 JMX 远程模拟开箱即用的管理 API

是否有可靠的方法检测 JMX 代理是否正在 运行ning,我能否在 运行 时找到端口?

相关:如果 运行-time 代码在不同的端口启动两个 JMX 代理会发生什么?

我为什么要问?如果尚未启动,我想在临时端口上自动神奇地启动 JMX 代理。

无法发现我找到的 jmx 连接器服务器。 但是,如果您确实启动了两个 jmx 连接器,那么您将有两个端口,您可以通过它们访问 PlatformMBeanServer。这不应该造成任何伤害。