【问题标题】:Java Runtime.getRuntime().exec and the vertical bar [duplicate]Java Runtime.getRuntime().exec 和竖线[重复]
【发布时间】:2014-01-05 16:52:04
【问题描述】:

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

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

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

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

而且它也不起作用。

【问题讨论】:

标签: java linux terminal openssl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多