1

IBM j9 (エミュレーター JVM から Windows Mobile) で実行されているプロセスの出力を読み取る必要があります。私はこれを試しました:

Process p = Runtime.getRuntime().exec("j9.exe");

BufferedReader br = new BufferedReader(new InputStreamReader(
      p.getInputStream()));

String stringLog;
while ((stringLog = br.readLine()) != null) {
   System.out.println(stringLog + "\n");
}

j9.exeしかし、既存のプロセスではなく、の新しいインスタンスを返したため、機能しませんでした。

(既存のプロセスの) j9console から System.out に記録されているすべてのメッセージを取得する必要があります。どうすればそれを行うことができますか?

4

2 に答える 2

4

純粋な Java を使用することはできません。低レベルの OS 関数呼び出しを行うネイティブ ライブラリを作成し、そのライブラリを JNI 経由で Java に公開する必要があります。ネイティブ レベルであっても、OS によっては、この機能を提供するシステム コールが OS にない場合があります。これは、通常、デバッガーによってのみ実行される特殊なタスクです。例えば​​gdb

于 2012-03-02T22:07:30.323 に答える
2

プロセスがその出力を名前付きパイプに書き込み、Java がそのパイプを読み取れるように調整する必要があります。Windows を使用していないことを願っています。

于 2012-03-03T01:25:23.030 に答える