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つです:
- オプションにスペースはありません
runjdwp
。 - オプションはクラス名の前に来ます。クラス名の後の引数はすべてプログラムへの引数になります。