我可以看到,在JConsole的一些方法被禁用。
下面给出的截图com.sun.management.ThreadMXBean
的的javadoc这些MBean方法不指定有关的辅助部分东西。
我认为这是一个安全功能,但我不能够得到具体的答案这一点。
最明显的第二部分,对这个问题是如何创建可以在JConsole中有选择地禁止定制的MBean实现。
下面给出的是系统配置:
JConsole的版本 “1.7.0-B147”
的Java(TM)SE运行时环境(建立1.7.0-B147)
的Java的HotSpot(TM)64位服务器VM(构建21.0-B17,混合模式)
编辑 :
禁用的方法是从一个独立的过程中可调用。
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName("java.lang", "type", "Threading");
String operationName = "getThreadAllocatedBytes";
//1 is main thread
Object[] params = {1};
String[] signature = new String[]{"long"};
Object result = server.invoke(name, operationName, params, signature);
//Result is 682760 on my machine
System.out.println(result);