import javax.management.*;
import javax.management.remote.*;
public class ApplicationManager {
private MBeanServerConnection connection;
public ApplicationManager() {
try {
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9001/jmxrmi");
JMXConnector connector = JMXConnectorFactory.connect(url, null);
connection = connector.getMBeanServerConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
public int getThreadCount() {
try {
ObjectName objectName = new ObjectName("java.lang:type=Threading");
return (int) connection.getAttribute(objectName, "ThreadCount");
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
public static void main(String[] args) {
ApplicationManager manager = new ApplicationManager();
int threadCount = manager.getThreadCount();
System.out.println("Thread count: " + threadCount);
}
}