【发布时间】:2012-08-19 07:37:38
【问题描述】:
我可以看到 jconsole 上的一些方法被禁用了。
下面是com.sun.management.ThreadMXBean的截图
这些 MBean 方法的 javadocs 没有指定任何关于可访问性部分的内容。
我认为这是一项安全功能,但我无法得到具体答案。
这个问题明显的第二部分是如何创建可以在 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);
【问题讨论】: