2014-11-11 11 views
5

Sto lavorando con qualche codice per monitorare il carico della CPU usando Java. Sto usando seguente codice nella mia app per ottenere il carico del sistemaAlternate di getSystemLoadAverage() per Windows?

public static double getCPULoad() { 
    OperatingSystemMXBean osMBean 
      = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); 

    double load = osMBean.getSystemLoadAverage(); 

    return load; 
    } 

Ma su Windows mi restituisce un valore negativo (-1,0). C'è un modo per risolvere questo problema?

risposta

2

Leggere this blog. Non è una soluzione ufficiale ma quando si utilizza com.sun.management.OperatingSystemMXBean anziché java.lang.management.OperatingSystemMXBean ci sono due metodi getSystemCpuLoad() e getProcessCpuLoad() che funzionano.