Building a process pipe with ProcessBuilder in Java 7

為{幸葍}努か 提交于 2019-12-29 08:33:15

问题


I've been trying to figure out how to pipe a few processes in Java using the new ProcessBuilder. I can't find a suitable example of what I want to do and when I try to do it myself the process just hangs. I would appreciate a very simple example of some code that runs the equivalent of cat test.txt | wc, but not through a shell.

--Update--

OK, just to clarify. I know there are ways to simulate a pipe by reading and writing streams. I'm wondering if that's done in some automatic way by the redirectInput and redirectOutput methods introduced in Java 7.


回答1:


You don't need a pipe in this case.

"grep bla test.txt"

however assuming you need a pipe, you need to use a shell like bash

"/bin/bash", "-c", "grep foo text.txt | grep bar"



回答2:


Start a child thread for each Input-/OutputStream pair with a simple copy loop in run().



来源:https://stackoverflow.com/questions/8243157/building-a-process-pipe-with-processbuilder-in-java-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!