JMX未在指定的端口上运行

时间:2012-07-13 22:38:45

标签: java jmx

我正在尝试通过JMX为Minecraft服务器启用远程调试,但我似乎无法使其正常工作。

我在命令行中使用它来启动它:

java -Dcom.sun.management.jmxremote.port=3000 -jar craftbukkit.jar

显然,我没有设置任何身份验证或任何其他内容,但该过程似乎正确启动。我删除了所有auth选项,但没有任何更改。

但是当我跑步时:

lsof | grep 3000 要么 netstat | grep 3000

没有返回任何内容。知道为什么这不正确地监听端口吗?

2 个答案:

答案 0 :(得分:2)

添加-Djava.rmi.server.hostname = host ip。与

一起
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false

添加此-Djava.rmi.server.hostname = host ip强制RMI服务使用主机IP而不是127.0.0.1

答案 1 :(得分:0)

除了您已经设置的属性之外,您还需要显式禁用身份验证(com.sun.management.jmxremote.authenticate = false)并禁用SSL(com.sun.management.jmxremote.ssl = false) 。将它们捆绑在一起,这是完整的命令行:

java -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar craftbukkit.jar

请注意,此配置被认为是不安全的,因为任何可以猜测端口3000的人都可以与您的计算机建立JMX连接,浏览MBean属性并运行MBean操作。如果您对安全配置感兴趣,本文档包含更多详细信息:

http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html

相关问题