我使用下面的代码来获取系统中运行的所有进程的详细信息:如何通过EXEC在Java中
Process p = Runtime.getRuntime().exec("ps aux");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
我要过滤ps aux
打倒管道符号,所以我用这个:
Process p = Runtime.getRuntime().exec("ps aux | grep java");
它进入ErrorStream。后来我注意到管道符号(|)被用作Java中的按位包含OR运算符。所以,我在管道符号前面使用反斜杠,如下图所示:
Process p = Runtime.getRuntime().exec("ps aux \\| grep java");
但同样它去ErrorStream。我如何通过Java中的exec运行ps aux | grep java
?
只是为了澄清,该位或运算符'|'是不是字符串中的解释,所以你不应该需要逃避它。 –