java - 使用具有临时端口的 JMX 服务器时,如何获取服务器端口号?

标签 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 使用临时端口,这对于避免冲突非常有用。

是否可以从应用程序中以编程方式获取实际端口(或连接 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

关于java - 使用具有临时端口的 JMX 服务器时,如何获取服务器端口号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39344378/

相关文章:

java - 有没有比 RMI 更快的 Java 二进制协议(protocol)?

java - RMI exportObject 中的客户端套接字工厂?

java - 如何使用 JMXWS WS 连接器 (JSR-262) 启动 VisualVM?

java - 如何在 Windows 中将 jar 添加到 jconsole 类路径?

java - 如何使用 JPA2 注释将结果限制为 Activity 记录

java - 在 sqlyog 中删除空值的语法

多台机器上的 Java RMI 注册表对象管理

java - 天青java : SAS identifier cannot be found for specified signed identifier

java - 使用 JPA 时,@Entity 和 @Table 中的 name 参数有什么区别?

spring - 将 Spring MBean 导出到 Tomcat 的 MBeanServer 实例