我正在使用一些代码来监控使用Java的Cpu负载。我在我的应用程序中使用以下代码来获取系统负载
public static double getCPULoad() {
OperatingSystemMXBean osMBean
= (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
double load = osMBean.getSystemLoadAverage();
return load;
}
但在windows上,它会返回一个负值(-1.0)。有什么办法可以解决这个问题吗?
请阅读此博客。这不是一个官方的解决方案,但当使用com.sun.management.OperatingSystemMXBean
而不是java.lang.management.OperatingSystemMXBean
时,有两种方法getSystemCpuLoad()
和getProcessCpuLoad()
正在工作。