私は、Linuxマシン上でJavaアプリケーションを実行しています。私は以下の方法でJavaアプリケーションを実行します。
Java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
このLinuxマシンのTCP用にポート4000を開きました。私はWindows XPマシンからEclipseを使って、このアプリケーションに接続しようとします。私は窓にも港を開けました。
どちらのマシンもLAN上にありますが、デバッガをJavaアプリケーションに接続することはできません。何がおかしいのですか?
編集:ここで何人かの人が呼び出しをカットアンドペーストしていることに気づきました。私が最初に出した答えはOPだけに関連していました。より現代的な呼び出しスタイルは次のとおりです(より一般的なポート8000の使用を含む)。
Java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n <other arguments>
元の答えが続きます。
これを試して:
Java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp
ここで2点:
runjdwp
オプションにスペースがありません。JDK 1.3以前の場合
-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006
JDK 1.4の場合
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006
新しいJDKの場合
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6006
必要に応じてポート番号を変更してください。
から Java技術情報
5.0以降では、-agentlib:jdwpオプションを使用して、JDWPエージェントにオプションをロードして指定します。 5.0より前のリリースでは、-Xdebugおよび-Xrunjdwpオプションが使用されます(5.0の実装では-Xdebugおよび-Xrunjdwpオプションもサポートされますが、新しい-agentlib:jdwpオプションは5.0のJDWPエージェントがJVM TIインターフェースを使用するため好ましい古いJVMDIインタフェースではなくVM
もう1つ注意しなければならないことは、 JVMツール・インターフェースの資料 からです。
JVM TIはJDK 5.0で導入されました。 JVM TIは、Java仮想マシンプロファイラインタフェース(JVMPI)およびJava仮想マシンデバッグインタフェース(JVMDI)に代わるもので、JDK 6では提供されなくなりました。
ステップ:
詳細については、 Javaリモートデバッグのステップバイステップガイド を参照してください。
Javaをカバーする回答> = 9:
Java 9+の場合、JVMオプションは、JVMをホストするマシンのIPアドレスをアドレスの前に付けるか、単に*
を追加することにより、わずかな変更が必要です。
-agentlib:jdwp=transport=dt_socket,server=y,address=*:8000,suspend=n
これは、 https://www.Oracle.com/technetwork/Java/javase/9-notes-3745703.html#JDK-8041435 に記載されている変更によるものです。
Java <9の場合、接続するにはポート番号で十分です。
これがEclipse Debuggerをリモートデバッグ用に設定する方法です。
Eclipseの設定:
1.実行ボタンをクリック
2.デバッグ設定を選択します
3. [リモートJavaアプリケーション]を選択します。
4.新しい設定
JBossの場合:
1.次のようにvmの/path/toJboss/jboss-eap-6.1/bin/standalone.conf
を変更します。#を削除して、次の行のコメントを外します。
Java_OPTS="$Java_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
Tomcatの場合:
catalina.batファイルでは、
ステップ1:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
ステップ2:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
ステップ3:以下のようにコマンドプロンプトからTomcatを実行します。
catalina.sh jpda start
次に、デバッグしたいJavaクラスにブレークポイントを設定する必要があります。