Alternate of getSystemLoadAverage() for Windows?

2.8k Views Asked by At

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?

1

There are 1 best solutions below

2
On BEST ANSWER

Please read this blog. It's not an official solution but when using com.sun.management.OperatingSystemMXBean instead of java.lang.management.OperatingSystemMXBean there are two methods getSystemCpuLoad() and getProcessCpuLoad() that are working.