2009-08-31 11 views
4

Javaプロセスを実行し、jconsoleを使用してリモート接続を有効にしようとしています。私はJVMがポート9999をリッスンしていることがわかり、netstatコマンドを使用してリモート管理を有効にしたJavaプロセスの実行

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

:しかし

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

、私がしようとしたとき、私は、コマンドライン(メインクラスの前)に次のパラメータを追加しますjconsole localhost:9999で接続します。接続に失敗したというエラーメッセージが表示されます。

答えて

6

の間にスペースがあります "...のjmxremoteが。"上記で入力した内容で「認証」します。コピー/貼り付けの場合は、コマンドライン上にコピーされていないことを確認してください。

また、SSLを無効にすることにより、簡素化することができます:-Dcom.sun.management.jmxremote.sslは=

+0

スペースが邪魔になりました.SSLを無効にして動作させる必要がありました。ありがとう。 –

4

IPv6を使用していますか?それ以外の場合は、サービスにIPv4を優先する必要があります。

-Djava.net.preferIPv4Stack = trueを

+0

偽も、それは奇妙です。 エラー:パスワードファイルの読み込みアクセスを制限する必要があります:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/management/(ipv4パラメータの有無にかかわらず)新しいエラーが発生しました。 jmxremote.password –

+0

javaプロセスを実行しているユーザーは、JMXパスワードファイルへの読み取りアクセス権を持っている必要があります。 chmod 0600 /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/management/jmxremote.password – cafebabe

+0

ipv4は問題ではありませんでした。以下の回答を参照してください。 –