2013-06-19 73 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在运行时将获取有关它自己的信息并将其写入标准输出,您可以拦截并阅读 –

相关问题