我正在使用ProcessBuilder来运行可执行文件。它工作正常。 现在我处于一个场景,我必须将第一个可执行文件的输出提供给第二个。 例如: exe1 arg1 arg2 | exe2 arg3 并获取其InputStream并打印到stdout。
所以我正在编写一个包含的小脚本.sh exe1 arg1 arg2 | exe2 arg3
以下在java中工作正常:
ProcessBuilder pb=new ProcessBuilder();
pb.command("/bin/sh","/home/biadmin/Desktop/script.sh");
Process p=pb.start();
InputStream in=p.getInputStream();
//输出成功打印到stdout。
但是当我在hadoop环境中做同样的事情时。我在输入流中没有得到任何东西。我需要在hadoop中使用同样的东西。任何建议/建议表示赞赏。
感谢。