リモートデバッグのJavaアプリケーション
-
13-09-2019 - |
質問
いるjavaアプリケーションlinuxで動作する機です。いるjavaアプリケーション:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
スーパーコンピュータを使用してポート4000TCPこのLinuxマシン。使っていeclipseからWindows XPの機械を接続するように願いいたします。スーパーコンピュータを使用して、ポートwindowsます。
両機の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
二つのポイントはこちら
- スペースを含めな
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
あなたのニーズに基づいて、ポート番号を変更してください。
以降5.0から-agentlib:JDWPオプションは、ロードおよび指定するために使用されます JDWPエージェントのオプション。 5.0より前のリリースでは、-Xdebugと -Xrunjdwpオプションが使用されている(5.0実装も-Xdebugと-Xrunjdwpオプションをサポートしていますが、新しい-agentlib:5.0でJDWP剤がにJVM TIインタフェースを使用しようJDWPオプションであることが好ましいです VMではなく、古いJVMDIインタフェース)
JVMツールインターフェイスのドキュメントするから注意すべきもう一つは、:
JVM TIは、JDK 5.0で導入しました。 JVM TIは、Java仮想マシンプロファイラー・インターフェース(JVMPI)とJDK 6のように、もはや提供され、Java仮想マシンデバッグインタフェース(JVMDI)を置き換えます。
手順:
- 始まりはリモートjavaアプリケーションとデバッグオプションとしては、上記ます。
- Eclipseの設定のためのリモートデバッグを指定するホストとポートです。
- スタート-リモートデバッグEclipseとの接続に成功した。
- セブレークポイントやデバッグ.
- したい場合はデバッグから適用開始利用suspend=y、そうするこ遠隔用停止までに接続したときからeclipse.
答えを覆Java>=9:
Java9+は、JVMのオプションのニーズは若干の変更によるprefixingのアドレス、IPアドレスの機械のJVM、 *
:
-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のデバッガのためのリモートデバッグ:
Eclipseの設定
1."Run"ボタンをクリックし
2.を選択し、デバッグの構成
3.を選択し"リモートJavaアプリケーション"
4.新たなコンフィグレーション
- 名前:GatewayPortalProject
- プロジェクト:GatewayPortal-ポートレット
- 接続タイプ:ソケット付
- 接続性i)localhost ii)8787
のためのJBoss:
1.の変更 /path/toJboss/jboss-eap-6.1/bin/standalone.conf
おvmとしてStrncasecmpは、以下の行を削除し、#:
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
たTomcat:
に catalina.バット ファイル:
ステップ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クラスをご希望のデバッグ.
私がここで強調したいのは、 めの引数が重要で.
私にとって java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar app.jar
コマンド 開デバッガポート,
が java -jar app.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
コマンド な.
デバッグの最良のオプションは、ログを作成し、ログを分析することです。しかし、いくつかのケースでは、我々は、サーバー上にデプロイされたWebアプリケーションをデバッグする必要があります。
<のhref = "http://easybook4u.com/index.php/2017/07/08/how-to-remotely-debug-a-java-web-application-deployed-on-amazon-ec2を参照してください。 /」のrel = "nofollowをnoreferrer">リモートデバッグのJava Webアプリケーションのリンク。リモートデバッグの完全な流れは、ここに記載されています。それに役立つことを願っています。