2009-08-31 61 views
4

我正在嘗試運行java進程並啓用使用jconsole的遠程連接。我添加下面的參數到命令行(主類前):用netstat運行啓用遠程管理的java進程

-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote. authenticate=false 

,我看到JVM在端口9999監聽:

tcp6  0  0 :::9999     :::*     LISTEN  16971/java 
然而

,當我嘗試連接jconsole localhost:9999我收到一條錯誤消息,指出連接失敗。

有什麼想法嗎?

回答

6

有之間的空間 「...... jmxremote。」和「驗證」你在上面輸入的內容。如果這是複製/粘貼,請確保它不在命令行中。

此外,您可以通過禁用SSL簡化:-Dcom.sun.management.jmxremote.ssl =假

+0

對這兩件事情都是正確的。空間混亂的事情,我需要禁用SSL來讓它工作。謝謝。 – 2009-08-31 09:38:56

4

您確定,您使用的是IPv6嗎?否則,你應該更喜歡IPv4服務。

-Djava.net.preferIPv4Stack =真

+0

好,這是奇怪的。 現在我得到一個新的錯誤(帶和不帶ipv4參數): 錯誤:必須限制密碼文件讀取訪問權限:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/management/ jmxremote.password – 2009-08-31 09:29:56

+0

運行java進程的用戶必須具有對JMX密碼文件的讀取權限。 chmod 0600 /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/management/jmxremote.password – cafebabe 2009-08-31 09:36:15

+0

ipv4不是問題,請參閱下面的答案。 – 2009-08-31 09:39:34