web-dev-qa-db-ja.com

eclipse:.jarファイルとしてJavaプログラムをデバッグするには?

Eclipseで.jarファイルを作成するためにantを使用します。よく働く。

コードを.jarファイル(.jarファイルと同じディレクトリで.propertiesファイルを探す)に期待する作業中の.jarファイルがあります-標準Eclipseの「実行」および「デバッグ」メニューは、指定されたJava class ...のmain()メソッドを実行しますが、jarファイルではなく、コンパイルされたクラスファイルを含むディレクトリから実行します。 Eclipseが代わりに適切な.jarファイルからコードを実行するようにこの動作を変更するには?

(私の現在の回避策は、 私の他の質問の1つに対するDave Rayの答え 。ごとに、デバッガを待機して中断した状態で、.jarファイルを外部で実行することです)

32
Jason S

はい、カスタムの「Run Configuration ":
つまり、「Java Application "1つ。

  • Classpathタブはデフォルトのコンテンツから空になりました(.classディレクトリ)およびjarが追加された状態
  • Sourceタブとそのデフォルトコンテンツ(プロジェクトのsrcディレクトリを参照する必要があります)

そのような構成の1つを実行またはデバッグできます。

http://www.kermeta.org/docs/html.chunked/KerMeta-UI-UserGuide/KerMeta-UI-UserGuide_figures/KerMeta_RunCommandLine_classpath.png

ユーザーエントリとしてjarを使用したカスタム構成の例

30
VonC

このようにjarを実行してリモートデバッグを使用できます

Java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar yourJar.jar

そして、IDEからそのポートに接続します

63
IonSpin

Java jarをリモートでデバッグするための手順全体を説明する次のリンクを見つけました。

デバッグJava Eclipseを使用したリモートアプリケーション

主な部分は次のとおりです。

ターゲットVMデバッグサーバーとして機能する

Java -Xdebug -Xrunjdwp:transport = dt_socket、server = y、address = "8000" -jar test.jar

ターゲットVMはデバッグクライアントとして機能します

Java -Xdebug -Xrunjdwp:transport = dt_socket、address = 127.0.0.1:8000、suspend = y -jar test.jar

ターゲットvm、クライアント、またはサーバーの実行方法に基づいて、Eclipseを別々に構成する必要があります。

ターゲットvmをクライアントとして起動する場合のEclipse設定

enter image description here

ターゲットvmをサーバーとして起動する場合のEclipse設定

enter image description here

この記事では、トピックについても丁寧に紹介しています。

6