私はプログラム的に日食で別のJavaプロセスを経てJavaプロセスを実行しています:日食:デバッグプログラムで開始したプロセス
Process process = Runtime.getRuntime().exec(command, envp, dir);
は、子プロセスをデバッグする日食伝える方法はありますか?
また、複数の起動設定(つまり、起動プロセスA、起動完了プロセスB)を連鎖させることで、この問題を解決できました.Bは、デバッグモードで起動できました。
私はプログラム的に日食で別のJavaプロセスを経てJavaプロセスを実行しています:日食:デバッグプログラムで開始したプロセス
Process process = Runtime.getRuntime().exec(command, envp, dir);
は、子プロセスをデバッグする日食伝える方法はありますか?
また、複数の起動設定(つまり、起動プロセスA、起動完了プロセスB)を連鎖させることで、この問題を解決できました.Bは、デバッグモードで起動できました。
Eclipseで「リモートデバッグ」機能を使用する場合は、任意のJVMインスタンスをポイントできます。それぞれのインスタンスが一意のJDWPポートを使用するように指示されていることを確認するだけです。これはコマンドラインからそれを行うだろうかです:
のでjava -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y
、あなたが好きなポートに「アドレス」部分を変更し、あなたはそのポートでEclipseを指すことができます。ここではいくつかのより多くの情報があります:私は他の目的のためにJMXを使用する必要があるため
http://java.dzone.com/articles/how-debug-remote-java-applicat
次のように子プロセスにコマンドラインオプションを追加します。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9999
(あなたが9999以外のポート番号を使用することができ、それはあなた次第ですが、最高の1024以上の数を選択してください)
をEclipseで、「リモートJavaアプリケーション」タイプのデバッグ構成を作成します。ホストをlocalhost、ポートを9999と設定します。
This developerWorks articleには多くの追加情報があります。
EDIT:ちなみに、子プロセスのコマンドラインと環境を柔軟に指定するには、Runtime.exec(...)
の代わりにjava.lang.ProcessBuilder
クラスを使用してください。
デベロッパー作品のリンクありがとうございます。このポストから多くの学習がありました。答えは – Ajay
FYI私は、異なるプロセスで物事を実行する必要があります。 – pstanton