如何找到默认的JMX端口号?(How to find the default JMX port nu

2019-06-23 23:33发布

我运行一个远程Windows XP上的Java虚拟机6的Java应用程序,关于这一点我可以运行jvisualvm.exe自动连接到运行的应用程序。

现在我需要的是应用程序从我的本地计算机连接,但我不知道远程计算机的JMX端口号。 我在哪里可以找到它? 或者,我必须重新启动一些VM参数应用到指定的端口号?

看完后的问题如何找到一个服务器的JMX端口 ,我在远程计算机上执行的命令

netstat -apn

但一无所获。

Answer 1:

现在我需要的是应用程序从我的本地计算机连接,但我不知道远程计算机的JMX端口号。 我在哪里可以找到它? 或者,我必须重新启动一些VM参数应用到指定的端口号?

默认情况下,除非您指定此页面的参数JMX没有一个端口上发布: 如何激活JMX ...

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false

如果您正在运行,你应该能够访问任何的系统属性,看看他们是否已设置:

if (System.getProperty("com.sun.management.jmxremote") == null) {
    System.out.println("JMX remote is disabled");
} else [
    String portString = System.getProperty("com.sun.management.jmxremote.port");
    if (portString != null) {
        System.out.println("JMX running on port "
            + Integer.parseInt(portString));
    }
}

根据服务器的连接方式,你可能还需要指定下列参数。 作为初始JMX连接的一部分,JConsole的连接到RMI端口来确定JMX服务器运行在哪个端口。 当您最初启动时启用了JMX的应用程序,它看起来它自己的主机名来确定,最初的RMI事务返回什么地址。 如果你的主机是不是在/etc/hosts ,或者如果它被设置为不正确的接口地址,那么你可以用下面的覆盖它:

-Djava.rmi.server.hostname=<IP address>

顺便说一句,我SimpleJMX包可以让你同时定义JMX服务器和RMI端口或将它们都设置为相同的端口。 与定义上述端口com.sun.management.jmxremote.port实际上是RMI端口。 这告诉哪个端口JMX服务器上运行的客户端。



文章来源: How to find the default JMX port number?