我使用 JMX 获取 JVM 利用率(CPU、内存、线程...)并在 Jconsole 上显示结果, 但我需要 API 来与 Java 代码集成 并利用 tomcat 然后将数据记录到文件中 Windows 中是否有从命令行使用的 API 技术或服务?
答案 0 :(得分:2)
JMX 是一种设计用于 Java 程序的技术,所以是的,这是可能的。您需要创建一个 JMX 服务 URL 以指向服务器(大概在本地主机上),然后将其与 JMX 连接器连接:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
一旦你有了它,你就可以按名称获取 MBean,
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
从那里您可以获得 MBean,包括在 jconsole 中报告的内容。例如,使用 RuntimeMXBean
:
RuntimeMXBean proxy = ManagementFactory.newPlatformMXBeanProxy(
mbsc,
ManagementFactory.RUNTIME_MXBEAN_NAME,
RuntimeMXBean.class);
long uptime = proxy.getUptime();
如果你想检查内存,你需要找出可用的内存池,然后遍历每个。您还可以设置侦听器以查看更改。 请参阅教程了解更多信息:https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/tutorial/tutorialTOC.html