0

我正在使用 Groovy 编写一个包装器脚本(但问题实际上是一个 Java 问题),并且想知道是否可以在不让它先运行的情况下创建一个进程。问题是进程开始运行并在 stdout 和 stderr 上生成输出。我想将它们转发到适当的目的地,同时创建一个合并流以在脚本中进行处理。然而,我遇到的问题是 Process 生成输出太快,前两行的输出有点乱码。我想在进程开始运行之前设置流。有什么办法吗?

4

1 回答 1

0

这会将输出和错误流消耗到两个单独的 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 回答