7

実行可能な jar を作成し、別の Java プログラムのプロセス ビルダーを使用して実行しました。ここに私のコードがあります -

public class SomeClass {
public static void main(String[] args) {
    Process p = null;
    ProcessBuilder pb = new ProcessBuilder("java", "-jar", "src.jar");
    pb.directory(new File("/Users/vivek/servers/azkaban-0.10/TestApp/src"));
    try {
        p = pb.start();
    } catch(Exception ex) {
        ex.printStackTrace();
    }
}

}

私は今、Eclipseからsrc.jarをデバッグしようとしています。デバッグ構成でプロジェクト src を外部プロジェクトとして提供しましたが、それでもブレークポイントにヒットしません。このようなデバッグ環境をセットアップする方法はありますか?

4

2 に答える 2

8

わかりましたので、これを機能させることができました。残念ながら、これに使用したサンプル プロジェクトが見つからないので、できる限り説明しようと思います。上からこの行を考えてみましょう -

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "src.jar");

私がする必要があったのは、これにパラメーターとして Xdebug を追加することだけでした -

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005", "src.jar");

次に、Eclipse でデバッグ環境を作成し、ポートを 5005 に設定し、jar のソース コードにいくつかのブレークポイントを設定しました。

于 2012-03-25T06:01:36.400 に答える
0

Eclipse で jar パッケージをデバッグする方法:

  1. プロジェクトの Referenced Lib で jar を選択します。
  2. Java ソース添付では、ソース コードの場所を指定できます。
  3. プロジェクトから jar ファイルのいくつかのクラスを呼び出します。
  4. ブレーク ポイントを追加し、プロジェクトをデバッグします。

この場合、jar ファイルとプロジェクトは同じプロセスで実行されています。

しかし、ProcessBuilder で jar ファイルを実行すると、jar ファイルはプロジェクトから独立した別のプロセスで実行されます。もちろん、Eclipse からも独立しています。つまり、jar ファイルは、コマンドで「java -jar jarfile」と入力した方法で実行されます。ライン。

于 2012-02-09T03:51:04.257 に答える