2013-06-19 98 views
0

我知道如何在Java運行外部程序:如何從java應用程序獲取進程(外部程序)時間,進程運行的CPU使用情況?

public class Test { 
    public static void main(String[] args) throws Exception { 
    Process p = Runtime.getRuntime().exec(
     "\"c:/my-simple-app.exe\""); 
    p.waitFor(); 
    } 
} 

但我怎麼能得到的所有程序性的,當我運行它這樣嗎?我的意思是:這個進程的系統時間(運行需要多少系統時間),cpu的使用情況(只針對這個確切的進程),......這可能嗎?

+0

不,不通過標準API – MadProgrammer

+0

@MadProgrammer:那麼還有其他方法嗎? (如何製作?) – mazix

+0

據我所知,你需要某種本地接口能夠執行任務 – MadProgrammer

回答

2

在單獨的線程中運行該程序,然後運行tasklist /v進程(如果是Windows),攔截輸出,將行拆分成列,找到my-simple-app.exe並獲取必要的信息。如果任務列表信息不夠,那麼讀取進程ID列表格任務列表輸出並運行一些其他util以獲取更多信息。

+1

好,但讓我說,我從Java運行的程序結束之前,我可以得到這個信息,然後怎樣呢?我想這樣做:1.在Java中運行一個外部程序2.等待它結束3.獲取我之前寫的關於這個程序的cp用法和系統時間的參數。如果它不可能在Java中,也許用其他語言......? – mazix

+1

我認爲這是唯一可能的,如果my-simple-app.exe在運行時將獲取有關它自己的信息並將其寫入標準輸出,您可以攔截並閱讀 –

相關問題