Java Runtime.getRuntime().exec and the vertical bar



我尝试运行以下命令以仅获取一行内存状态。

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

但它返回所有结果行。不处理竖线后面的命令。我也尝试:

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

而且它也不起作用。

带有"|"的管道只能在 shell 中实现,但如果你使用 runtime.exec(),你就没有 shell。它只是执行另一个进程。因此,管道被简单地忽略了。在您的情况下,您可以通过在 java 程序中使用 regex 匹配器来提取结果来解决这个问题。

相关内容

  • 没有找到相关文章

最新更新