0

サブプロセスを起動するために呼び出されるコードがいくつproc = Runtime.getRuntime().exec(cmd)かあり、親プロセスと子プロセスの間に何らかの通信があります。場合によってはjava.io.IOException: The pipe is being closed、親から子への write() および flush() の呼び出し中に取得しています。これは時々発生しますが、毎回ではありません。

ここでの私の仮説は、サブプロセスが起動されている (したがってproc.getInput/OutputStream()動作している) が、子プロセスが完全に実行/実行される前に、親プロセスが子プロセスに書き込もうとしているというものです。これはもっともらしいと思いますか?私は、JVM について本当に自信を持てるだけの深い経験がありません。現在、私の解決策は、子プロセスが親に書き込みを行い、それが稼働中であることを通知することです。これはまったく問題なく機能しますが、もう少し自信を持って感じられるとよいでしょう。

さらにコードの詳細などが必要な場合は、喜んで提供します。

ありがとう!

4

0 に答える 0