使用Java检索Window进程的CPU使用率

时间:2009-11-19 23:16:53

标签: java windows process cpu system-monitoring

我正在寻找一种Java解决方案来查找Windows中正在运行的进程的CPU使用情况。浏览网页后,似乎没有关于Java解决方案的信息。请记住,我不是要查找JVM的CPU使用情况,而是查找当时在Windows中运行的任何进程。

我可以使用exec(“tasklist.exe ...”)来检索和解析进程信息,从而检索Java中的内存使用情况。虽然每个进程都有一个聚合CPU周期计时器,但我看不到CPU使用率列。

非常感谢任何帮助。另外,如果可能的话,我想远离C库;但是,如果没有其他选择,通过这种方式的解决方案是合适的。

非常感谢,

史蒂夫

6 个答案:

答案 0 :(得分:1)

查看Jacob。它将允许您调用COM对象,并且在Windows上有这种信息的COM对象。

答案 1 :(得分:1)

如果GPL许可API适合您,请尝试

SIGAR - System Information Gatherer And Reporter

它允许访问您想要的信息(以及更多),并在许多相关平台上得到支持

答案 2 :(得分:0)

  

Windows中的任何正在运行的进程

因此,不是以任何方式受Java控制?

  

我想远离JNI

算了。 Java不是特定于平台的。如果您想访问特定于平台的信息,则无法绕过JNI。

答案 3 :(得分:0)

您正在编写/使用单独的程序将数据转储到某处,然后可以通过网络,文件或数据库从Java中获取数据。在Linux中你总是可以阅读/proc但不能在Win上阅读,需要单独的程序(没有JNI)。

答案 4 :(得分:0)

答案 5 :(得分:0)

试用javasysmon,获得BSD许可(确切地说:FreeBSD 2条款许可)。

我用它来获取CPU核心和CPU使用率。它比使用tasklist.exe要好得多。