Javaアプリケーションのリモートデバッグ [重複] 質問する

Javaアプリケーションのリモートデバッグ [重複] 質問する

Linux マシンで Java アプリケーションを実行しています。次を使用して Java アプリケーションを実行します。

java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n

この Linux マシンで TCP 用にポート 4000 を開きました。Windows XP マシンから Eclipse を使用して、このアプリケーションに接続しようとしています。Windows でもポートを開きました。

両方のマシンは LAN 上にありますが、デバッガーを Java アプリケーションに接続できないようです。何が間違っているのでしょうか?

ベストアンサー1

編集:ここで呼び出しをコピーして貼り付けている人がいることに気付きました。私が最初に出した回答は、OP にのみ関係するものでした。以下は、より現代的な呼び出しスタイルです (より一般的なポート 8000 の使用を含む)。

java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n
<other arguments>

注: (上記で使用されている)を使用するとaddress=8000、デバッグサーバーはlocalhost(参照)のみをリッスンします。JVM をリモートでデバッグできるように設定するための Java コマンドライン オプションは何ですか?)。サーバーがすべてのインターフェースでリッスンし、ネットワーク全体でデバッグできるようにするには、 を使用しますaddress=*:8000。当然ながら、制限された信頼できるネットワークでのみこれを実行してください...

元の回答は以下の通りです。


これを試して:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp

ここでのポイントは2つです:

  1. オプションにスペースはありませんrunjdwp
  2. オプションはクラス名の前に来ます。クラス名の後の引数はすべてプログラムへの引数になります。

おすすめ記事