我运行一个远程Windows XP上的Java虚拟机6的Java应用程序,关于这一点我可以运行jvisualvm.exe自动连接到运行的应用程序。
现在我需要的是应用程序从我的本地计算机连接,但我不知道远程计算机的JMX端口号。 我在哪里可以找到它? 或者,我必须重新启动一些VM参数应用到指定的端口号?
看完后的问题如何找到一个服务器的JMX端口 ,我在远程计算机上执行的命令
netstat -apn
但一无所获。
我运行一个远程Windows XP上的Java虚拟机6的Java应用程序,关于这一点我可以运行jvisualvm.exe自动连接到运行的应用程序。
现在我需要的是应用程序从我的本地计算机连接,但我不知道远程计算机的JMX端口号。 我在哪里可以找到它? 或者,我必须重新启动一些VM参数应用到指定的端口号?
看完后的问题如何找到一个服务器的JMX端口 ,我在远程计算机上执行的命令
netstat -apn
但一无所获。
现在我需要的是应用程序从我的本地计算机连接,但我不知道远程计算机的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服务器上运行的客户端。