我正在寻找一种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)。
看看这些问题:
Windows中的任何正在运行的进程
因此,不以任何方式控制Java?
我想远离JNI
算了吧。 Java不是特定于平台的。 如果你想访问平台的具体信息,你不能绕过JNI。
尝试javasysmon ,BSD许可(准确地说:FreeBSD 2-clause许可证)。
我用它来获得CPU核心和CPU使用率。 这比使用tasklist.exe我想更好。