管道unix命令没有在java程序中执行

时间:2012-04-23 00:51:08

标签: java ps

我正在尝试使用java程序中的pid来获取特定进程的内存使用情况 使用以下命令 ps -eo pid,pmem,comm | grep java | awk'{print($ 2)}'

虽然这个命令可以在unix终端上运行,但它在java中不起作用我即使在运行另一个java程序(使用java进程填充ps表)时仍然会获得null结果。

String[] PipedCommand = {
                        "/bin/bash",
                        "-c",
                        "ps -eo pid,pmem,comm | grep java | awk '{print ($2)}'"
            };
            Process command1=Runtime.getRuntime().exec(PipedCommand);
            command1.waitFor(); 
            BufferedReader reader1=new BufferedReader(new InputStreamReader(command.getInputStream())); 
            String line1=reader1.readLine();
            if(line1 != null)
            {
                System.out.println(" Memory percentage is "+line1);
            }

如果有人能告诉我方法是否有问题,我将不胜感激

0 个答案:

没有答案