在JDK中是否有直接的方法来获取机器上的CPU使用情况,无论是它的mac,windows还是linux?
问题描述:
我有一个应用程序,其中我必须显示CPU & RAM的用法,我尝试了这么多事情,但没有得到任何准确的解决方案。因此,最终以最终以编程方式查询CPU使用率是不可能的,因为使用纯Java。根本就这个没有API在博客上张贴在JDK中是否有直接的方法来获取机器上的CPU使用情况,无论是它的mac,windows还是linux?
。
我曾尝试(我使用的Java 1.8):
OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean();
System.out.println("========="+ osBean.getSystemLoadAverage());
MemoryMXBean bean = ManagementFactory.getMemoryMXBean();
System.out.println("######"+ bean.getNonHeapMemoryUsage());
ThreadMXBean mxbean = ManagementFactory.getThreadMXBean();
System.out.println("========="+ mxbean.getCurrentThreadCpuTime());
答
好吧,我不得不做这样的事情,有时前,我没有找到一个简单的和本土的方式来做到这一点。
无论如何,经过一番研究,我发现一个相当酷的库,可以用于这种任务,并支持各种各样的操作系统。您应该在OSHI上看看here,OSHI是一个免费的基于Java的JNA(本地)操作系统和硬件信息库。
请不要垃圾标签您的问题。例如,这与Oracle无关。 – mathguy
Downvoters,请提及你的downvote的原因。 – Dev
开发 - 我完全同意你对downvoters的要求,以解释他们的理由。 (我甚至会主张SO将它作为一个要求 - 即使它是匿名评论,这可能是一个编码站点的痛苦)。为了记录,我不会低估垃圾邮件标签,我只是对此发表评论。你有**两个** downvoters谁没有解释他们发现你的问题有问题。请注意,尽管如此,大多数downvoters不会**解释他们的投票。 – mathguy