如何在JMX中使用getSystemCpuLoad()

时间:2012-02-09 17:04:06

标签: java jmx

我无法在我的java程序中使用getProcessCpuTime()或getProcessCpuLoad()或getSystemCpuLoad()。我用过如下。

ManagementFactory. getOperatingSystemMXBean().getProcessCpuTime();

也喜欢这个

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

但是找不到类似方法getProcessCpuTime()的显示错误。我包括以下头文件。这还不够,或者我需要再使用了。?

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

任何人都可以建议我如何使用这些方法。我正在使用jdk1.6。我的代码在下面

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());
}

}

2 个答案:

答案 0 :(得分:11)

导入一个

 import com.sun.management.OperatingSystemMXBean;

import java.lang.management.OperatingSystemMXBean;

使用以下代码。

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

我使用此代码获得了有效的结果。

答案 1 :(得分:3)

查看以下javadoc:http://docs.oracle.com/javase/6/docs/api/

查看为OperatingSystemMXBean定义的方法。您的问题是,您正在寻找com.sun.management.OperatingSystemMXBeanjava.lang.management.OperatingSystemMXBean中定义的方法。

com.sun主要供内部使用java创建者,而不是应用程序开发人员。您应该使用包java.lang.management中的类,并参考相应的API文档。