Java 检索已注册的JMX mbean的信息

Java 检索已注册的JMX mbean的信息,java,eclipse,jmx,jconsole,Java,Eclipse,Jmx,Jconsole,我正在使用Eclipse编写两个简单的Java程序。第一个程序创建一个简单的mbean并将其注册到mbean服务器中。第二个程序检索已注册mbean的信息。为了注册和检索mbean,我使用下面的代码为这两个程序创建了服务器: MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); 当我运行第二个程序时,它不会列出创建的Mbean,下面的两行返回false ObjectName mbeanName = new ObjectNam

我正在使用Eclipse编写两个简单的Java程序。第一个程序创建一个简单的mbean并将其注册到mbean服务器中。第二个程序检索已注册mbean的信息。为了注册和检索mbean,我使用下面的代码为这两个程序创建了服务器:

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
当我运行第二个程序时,它不会列出创建的Mbean,下面的两行返回false

ObjectName mbeanName = new ObjectName("HelloAgent:name=helloWorld1");
mbs.isRegistered(mbeanName);
但是,我可以使用JConsole查看和访问它。 我错过什么了吗? 非常感谢。 jconsole快照1 jconsole快照2

正如您提到的,您正在运行两个不同的Java程序,这意味着它们都有不同的MBean服务器,并且运行在不同的JVM中

mbs.isRegistered(mbeanName);
上述方法将检查MBean是否已在当前Java进程的MBean服务器上注册。它无法查询另一个Java程序的MBean服务器

要从另一个Java程序访问MBean,需要创建一个客户端,该客户端将使用RMI查询第一个Java程序(包含要管理的MBean)

您可能会发现本教程有助于实际理解如何使用