如果在 JVM 启动时定义了 Java 系统属性 com.sun.management.jmxremote
,则 JMX 代理将在系统属性 com.sun.management 中定义的端口上启动。 jmxremote.port
.
但是,也有一些技术可以在运行时启动 JMX 代理/监听器。 (参见:Monitoring and Management Using JMX Technology,部分:使用 JMX 远程 API 模拟开箱即用的管理)
是否有可靠的方法来检测 JMX 代理是否正在运行,我能否在运行时找到端口?
相关:如果运行时代码在不同的端口上启动两个 JMX 代理会发生什么情况?
我为什么要问?如果尚未启动,我想在临时端口上自动神奇地启动 JMX 代理。
最佳答案
无法发现我找到的 jmx 连接器服务器。 但是,如果您确实启动了两个 jmx 连接器,那么您将有两个端口,您可以通过它们访问 PlatformMBeanServer。这不应该造成任何伤害。
关于java - 如何检测 JMX 代理是否正在运行,以及使用哪个端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33736177/