首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找到默认的JMX端口号?

如何找到默认的JMX端口号?
EN

Stack Overflow用户
提问于 2012-04-26 17:59:51
回答 1查看 205K关注 0票数 56

我在远程Windows XP上的Java6VM上运行一个Java应用程序,在该应用程序上我可以运行jvisualvm.exe来自动连接到正在运行的应用程序。

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

在阅读了问题How to find the JMX port in a server之后,我在远程计算机上执行了命令

代码语言:javascript
运行
复制
netstat -apn

但一无所获。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-29 06:53:16

现在,我需要从本地计算机连接该应用程序,但我不知道远程计算机的

端口号。我在哪里可以找到它?或者,我是否必须使用一些VM参数重新启动该应用程序以指定端口号?

缺省情况下,除非您从该页面指定参数,否则JMX不会在端口上发布:How to activate JMX...

代码语言:javascript
运行
复制
-Dcom.sun.management.jmxremote # no longer required for JDK6
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false # careful with security implications
-Dcom.sun.management.jmxremote.authenticate=false # careful with security implications

如果您正在运行,您应该能够访问这些系统属性中的任何一个,以查看它们是否已设置:

代码语言:javascript
运行
复制
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中,或者设置为不正确的接口地址,则可以使用以下内容覆盖它:

代码语言:javascript
运行
复制
-Djava.rmi.server.hostname=<IP address>

顺便说一句,我的SimpleJMX package允许您同时定义JMX serverRMI port,或者将它们设置为同一端口。上面用com.sun.management.jmxremote.port定义的端口实际上是RMI端口。这将告诉客户端JMX服务器在哪个端口上运行。

票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10331189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档