6

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?

Chin
  • 19,717
  • 37
  • 107
  • 164
Navdeep Singh
  • 63
  • 1
  • 6

1 Answers1

3

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.

Uli
  • 1,390
  • 1
  • 14
  • 28