I am working on with some code to monitor Cpu load using Java. I am using following code in my app to get system load
public static double getCPULoad() {
OperatingSystemMXBean osMBean
= (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
double load = osMBean.getSystemLoadAverage();
return load;
}
But on windows it returns me a negative value (-1.0). Is there any way i can solve this problem?
Please read this blog. It's not an official solution but when using
com.sun.management.OperatingSystemMXBean
instead ofjava.lang.management.OperatingSystemMXBean
there are two methodsgetSystemCpuLoad()
andgetProcessCpuLoad()
that are working.