2013-12-17 97 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程序中使用正則表達式匹配器來解決這個問題。

相關問題