使用Java 7中的ProcessBuilder构建流程管道

Ale*_*kov 8 java pipe processbuilder

我一直试图弄清楚如何使用new管道Java中的一些进程ProcessBuilder.我找不到一个合适的例子来说明我想做什么,当我尝试自己做这个过程时,这个过程就会挂起.我将非常感谢一些代码运行相当于cat test.txt | wc但不是通过shell的代码.

--Update--

好的,只是澄清一下.我知道有一些方法可以通过读写流来模拟管道.我想知道是否通过Java 7中引入的redirectInputredirectOutput方法以某种自动方式完成.

Pet*_*rey 4

在这种情况下你不需要管道。

"grep bla test.txt"
Run Code Online (Sandbox Code Playgroud)

但是假设你需要一个管道,你需要使用像 bash 这样的 shell

"/bin/bash", "-c", "grep foo text.txt | grep bar"
Run Code Online (Sandbox Code Playgroud)

  • 我正在尝试使用 ProcessBuilder 中的redirectInput 和redirectOutput 方法来模拟管道。 (3认同)
  • 非常令人失望的是,java API 和 Apache commons 都没有提供将进程链接到管道中的方法。我猜没有足够多的人欣赏管道的优雅 (2认同)