0

Groovy を使用してラッパー スクリプトを作成しています (ただし、問題は実際には Java に関するものです)。最初に実行させずにプロセスを作成できるかどうかを知りたいです。問題は、プロセスが実行を開始し、stdout および stderr で出力を生成することです。それらを適切な宛先に転送すると同時に、スクリプト内で処理するためのマージされたストリームを作成したいと思います。しかし、私が直面している問題は、Process が生成する出力が速すぎて、最初の 2 行の出力が少し文字化けしていることです。プロセスの実行を開始する前にストリームをセットアップしたいと思います。それを行う方法はありますか?

4

1 に答える 1

0

これにより、出力ストリームとエラー ストリームが 2 つの個別の StringWriter に消費されますが、「文字化けした」ものは何も表示されません。

new StringWriter().with { out ->
  new StringWriter().with { err ->
    'ls /tmp'.execute().with { proc ->
      consumeProcessOutput( out, err )
      waitFor()
    }
    println "OUT: $out"
    println "ERR: $err"
  }
}
于 2012-04-12T21:16:07.760 に答える