com.sun.management.OperatingSystemMXBean

sun 开头包,所以在jar包中查找不到,都是与平台相关的。大家用不用都可以考虑。

jconsole中就是依靠这个类来获取进程cpu的时间的。

网上有关他的帖子很多,都是解决编译器错误的,有的直接把jconsole的生产代码全部copy,就是没有人告诉我们如何创建这个接口的实现类,毕竟没有api,最后我也是看了jconsole的源码(实际创建调用有点麻烦,他们用了各种代理),然后把直观的代码抽取出来,再加上javase的功底(说白就是对api的熟悉),把产生这个类的代码复现出来了,下面和大家分享

private com.sun.management.OperatingSystemMXBean getInstance(){
		String name ="java.lang:type=OperatingSystem";
		ObjectName objectName = null;
		try {
			objectName = new ObjectName(name);
		} catch (MalformedObjectNameException e) {
			e.printStackTrace();
		}
		MBeanServer server = ManagementFactory.getPlatformMBeanServer();
		return JMX.newMXBeanProxy(server, objectName,com.sun.management.OperatingSystemMXBean.class );
	}

非常简短,就是获取三个参数的过程。当你只需要这个类的时候,以上代码是不错的选择

JMX是1.6的新类,1.5是没有的,1.5需要调用MBeanServerInvocationHandler的newProxyInstance方法,notificationBroadcaster设置为flase。





你可能感兴趣的:(com.sun.management.OperatingSystemMXBean)