DigitalOceanで実行しているサーバーと、デバッグしたいJARファイルがあります。私は最初にリモートサーバーでJARを起動します
Java -jar Server.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
しかし、コンソールには「listen on port 5005 ...」のような出力は表示されません。
IntelliJでデバッグを押すと、
デバッガーポート(198.xxx.xxx.xx:5005)を開けません:Java.net.ConnectException "Connection refused"
-Xdebug
を使用してみましたが、まだ機能しませんでした。
suspend=y
を設定すると、デバッガが接続されるまで待機する必要がありますが、代わりに問題なく起動します。
リモートJavaデバッグモードでプロセスを開始するコマンドは正しいようです。サーバーJARを開始するときに「Listing to Port blah」が表示されない場合は、デバッグ引数これをすばやく確認する別の方法は、telnet localhost 5005
サーバーJARが実行されているマシン上。そのポートが使用されていない場合、telnet
は失敗します。
パラメーターの順序が重要になる可能性があるため、次のことを試してみることをお勧めします(これについては、いくつかの公式証拠を後で追加します)。
Java "agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" -jar Server.jar
このコマンドは私のために働いた:
Java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar Server.jar
このコマンドは私のために働いた:
export Java_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5505'
デフォルトでは、アイデアのリモートダイアログは以下を提案します:
'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
次のように変更します。
'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005'
ポート5005を発行します。
私の場合は、設定->ビルド、実行、展開->デバッガーで、何らかの理由でデバッガーを接続しようとしているのと同じポートで実行されている組み込みサーバーがあったためです。