MX的客户端不仅仅是jconsole程序。我们也可以用java写一个客户端。用java写JMX客户端主要用到了三个核心类。
JMXServiceURL
JMXConnector
MBeanServerConnection
第一个是用来构造JMX连接URL
第二个是连接器
地上那个是连接
比如我要连接一个本地的JMX服务。代码就是这样:
public static void main(String[] args) throws IOException, MalformedObjectNameException,
AttributeNotFoundException, MBeanException, ReflectionException,
InstanceNotFoundException, InvalidAttributeValueException {
JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null);
MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
connection.setAttribute(new ObjectName("jmxdemo:type=User"),new Attribute("Password","7894456"));
jmxConnector.close();
}
JMX的url比较复杂,但是除了固定的之外,需要改动的,只有ip地址和端口。其余的照抄就是了。
上述代码是修改内存堆里用户的密码属性。