是否可以将ProcessBuilder创建的一个进程的输出传递给另一个ProcessBuilder创建的另一个进程?例如,如果我正在尝试执行此shell命令:
ls | grep build.xml
Run Code Online (Sandbox Code Playgroud)
我应该如何使用ProcessBuilder?
正如@erdinc建议的那样,我试过这个:
Process process = Runtime.getRuntime().exec("ls");
InputStream is = process.getInputStream();
byte[] buf = new byte[1000];
is.read(buf);
String parameter = new String(buf);
System.out.println("grep build " + parameter);
Process proc2 = Runtime.getRuntime().exec("grep build " + parameter);
InputStream is2 = proc2.getInputStream();
byte[] buf2 = new byte[1000];
is2.read(buf2);
String result = new String(buf2);
System.out.println("proc2 result: " + result);
Run Code Online (Sandbox Code Playgroud)
但是当我直接在shell中运行脚本时,它会产生不同的结果.我哪里做错了?
解决:请参阅Philipp Wendler解决方案
我正在使用Apache xmlrpc使用Java构建xmlrpc客户端,但无法弄清楚如何记录输入/输出xml(接收和发送的原始数据).我该怎么做呢?
谢谢
我目前正在尝试使用cygwin在Windows中使用Linux C++编写一些源代码,并不断收到错误:sys/resource.h:没有这样的文件或目录
cygwin中是否有包含sys/resource.h的包?如果是这样的包裹?
我已经尝试使用谷歌搜索,但还没有找到任何东西,谢谢你的帮助
我正在尝试安装摩西脚本,摩西机器翻译工具的一部分,但不断收到错误:
/home/moses/scripts/training/lexical-reordering/reordering_classes.cpp:349: undefined reference to `gzopen'
/home/moses/scripts/training/lexical-reordering/reordering_classes.cpp:353: undefined reference to `gzwrite'
/home/moses/scripts/training/lexical-reordering/reordering_classes.cpp:356: undefined reference to `gzclose'
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu 11.10中使用gcc 4.6.1,并且已经安装了zlib1g-dev软件包.摩西的来源是最新的(2010-08-13).
我该怎么办?我需要安装一些额外的包吗?