Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use getSystemCpuLoad() in JMX

Tags:

java

jmx

Hi i cant able to use getProcessCpuTime() or getProcessCpuLoad() or getSystemCpuLoad() in my java program. I used like below.

ManagementFactory. getOperatingSystemMXBean().getProcessCpuTime();

also like this

( (OperatingSystemMXBean) getOperatingSystemMXBean() ).getProcessCpuTime()

But its showing error like method getProcessCpuTime() is not found. I included the following header files. Is that enough or i need to use any more.?

import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;

Can anyone please suggest me how to use these methods. am using jdk1.6. And my code is below

import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class printUsage {

public static void main(String[] args) {
OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();

System.out.println("getCpuProcessTime()" + " = " + operatingSystemMXBean.getProcessCpuTime());
System.out.println("getCpuProcessTime()" + " = " + operatingSystemMXBean.getSystemCpuLoad());
System.out.println("getCpuProcessTime()" + " = " + operatingSystemMXBean.getProcessCpuLoad());
}

}
like image 562
shagul Avatar asked Feb 09 '12 17:02

shagul


2 Answers

import following one

 import com.sun.management.OperatingSystemMXBean;

Not

import java.lang.management.OperatingSystemMXBean;

Use following code.

OperatingSystemMXBean operatingSystemMXBean = (com.sun.management.OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();

I am getting valid results with this code.

like image 114
kosa Avatar answered Oct 13 '22 17:10

kosa


Take a look on the following javadoc: http://docs.oracle.com/javase/6/docs/api/

See what methods are defined for OperatingSystemMXBean. Your problem is that you are looking for methods defined in com.sun.management.OperatingSystemMXBean into java.lang.management.OperatingSystemMXBean.

Package com.sun is mostly for internal use of java creators, not for application developers. You should use classes from package java.lang.management and refer to appropriate API doc.

like image 43
AlexR Avatar answered Oct 13 '22 18:10

AlexR