我可以看到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);