2013-12-17 194 views
0

我尝试运行以下命令以仅获取一行内存状态。Java Runtime.getRuntime()。exec和垂直条

Runtime.getRuntime().exec("free -m | grep 'Mem'"); 

但它返回所有结果行。不处理垂直条之后的命令。我也尝试:

Runtime.getRuntime().exec(new String[] { "free", "-m", "|", "grep", "Mem" }); 

而且它也不起作用。

+0

提示:_vertical bar_是__pipe__,由_shell_解释,而不是java。 – devnull

+0

http://stackoverflow.com/questions/5928225/how-to-make-pipes-work-with-runtime-exec – assylias

回答

1

用“|”只有在shell中才有可能,但是如果你执行了runtime.exec(),你就没有shell。它只是执行其他进程。因此管道被简单地忽略。在你的情况下,你可以通过在你的java程序中使用正则表达式匹配器来解决这个问题。

相关问题