2015-07-12 40 views
0

我试图从Ubuntu使用Java获取所有正在运行的进程的列表。如何使用Java获取Ubuntu上所有正在运行的进程的列表?

我试着运行“顶部”并解析响应。

我的问题是,“顶部”命令启动一个可以被用户杀死的进程。

我尝试这样做:

public void execute() 
{ 
    try{ 
    ProcessBuilder build = new ProcessBuilder("top"); 
    Process proc = build.start(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
    String line; 

    while((line = reader.readLine()) != null) 
    {System.out.println("wait"); 
     System.out.println(line); 
    } 
    proc.waitFor(); 
    reader.close(); 

    } 
    catch(IOException e) 
    { 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

我无法得到回应,因为该命令仍在执行。

如何停止进程然后获得其响应? (这又因为我要更新的信息)

编辑:独特部分:详述有关正在运行的进程(如MEM消耗,CPU)的信息“顶部”命令显示,该数据被不断如此更新它是不可能简单地运行它并采取响应。

+2

[如何使用Java获取正在运行的进程的列表](http://stackoverflow.com/questions/20472639/how-to-get-list-of-running-processes-with-java) – Joe

回答

0

为了得到你应该使用命令

PS

所有正在运行的进程的列表将它们全部列出,并会完成。该命令有许多命令行选项,例如不仅显示当前用户的进程,还显示机器上的所有用户。

相关问题