使用Java来检索窗口进程的CPU使用情况

我正在寻找一种Java解决scheme来查找Windows中正在运行的进程的CPU使用情况。 在环顾networking之后,似乎很less有关于Java解决scheme的信息。 请记住,我不是在寻找JVM的CPU使用率,而是在Windows上运行的任何进程。

我能够通过使用exec(“tasklist.exe …”)检索和parsing进程信息来检索Java中的内存使用情况。 尽pipe每个进程都有一个聚合CPU周期计时器,但是我没有看到CPU使用率列。

任何帮助将不胜感激。 另外,如果可能,我想远离C库; 但是,如果没有别的select,那么采用这种方法就是合适的。

非常感谢,

史蒂夫

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

系统信息收集者和记者

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

看看雅各 。 它可以让你调用COM对象,并且在Windows上有这种信息的COM对象。

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

看看这些问题:

  • 如何检查Java中的CPU和内存使用情况?
  • 使用Java获取操作系统级别的系统信息
  • 如何在Java中监控计算机的CPU,内存和磁盘使用情况?
  • 来自Java的CPU负载
  • 使用JMX获取线程CPU时间的有效方法

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

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

我想远离JNI

算了吧。 Java不是特定于平台的。 如果你想访问平台的具体信息,你不能绕过JNI。

尝试javasysmon ,BSD许可(准确地说:FreeBSD 2-clause许可证)。

我用它来获得CPU核心和CPU使用率。 这比使用tasklist.exe我想更好。