13

現在実行中のプロセスがわかっているとします。これを Java の Process オブジェクトに変換するにはどうすればよいでしょうか。プロセスは既に実行されているため、別のプロセスを生成する必要はありません。Java コード内で使用できる Process オブジェクトにプロセスをカプセル化したいだけです。次のようなもの:

int pid = getPid();
Process proc = magicGetProcess(pid);

ありがとう

4

4 に答える 4

4

組み込みライブラリのみを使用してこれが可能だとは思いません。私の知る限り、実行中のプロセスの独自の PID を取得することはすでに重要です (機能の要求代替メカ​​ニズムを参照してください)。

java.lang.Processこのクラスを簡単に見てみると、java.lang.ProcessJNI とネイティブ コードを使用して独自の実装を作成できることがわかります。カスタムクラスは、質問のような追加のメソッドを実装できます。

于 2010-10-21T21:10:28.923 に答える
0

RMI を使用するとどうなりますか? Process オブジェクトを Process に渡すことは可能ですか? Process は Serializable ではないため、おそらくそうではありません

于 2011-01-29T21:24:59.163 に答える
0

できません。Process 内のすべての操作では、プロセスが子プロセスである必要があります。恣意的なプロセスではありません。

于 2010-10-22T05:07:07.300 に答える
0

* nix の世界では、子プロセス以外のプロセスの終了コードを取得するのは簡単ではありません。これは、親プロセスが子プロセスの終了コードを取得するとすぐに終了コードがプロセスと一緒に消えるためです。何らかのトレース ツールを使用して実行中のプロセスにアタッチし、プロセスが停止したときにその終了コードを取得できます。ほとんどの *nix OS には、非侵入的な方法でそれを実行できるコマンド ライン ツール (Linux の strace、SunOS の truss など) があります。ただし、独自のプロセスに対して、またはルートとして実行する場合にのみ使用できます。もう 1 つの方法は、OS の監査サブシステムを構成して、すべてのプロセスの終了コードを記録することです。

于 2010-10-21T21:53:25.637 に答える