import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import javax.management.InstanceAlreadyExistsException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;

import com.sun.jdmk.comm.HtmlAdaptorServer;

public class RuntimeMXBeanTest {
    public RuntimeMXBeanTest() {
        MBeanServer server = MBeanServerFactory.createMBeanServer();
        
        try {
            RuntimeMXBean mbean = ManagementFactory.getRuntimeMXBean();
            server.registerMBean(mbean, new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME));
            
            System.out.println("Creating an HTML protocol adaptor..");
            HtmlAdaptorServer adaptor = new HtmlAdaptorServer();
            ObjectName adaptorName = new ObjectName("Adaptor:name=adaptor,port=8082");
            server.registerMBean(adaptor, adaptorName);
            adaptor.start();
        } catch (InstanceAlreadyExistsException ex) {
            ex.printStackTrace();
        } catch (MBeanRegistrationException ex) {
            ex.printStackTrace();
        } catch (NotCompliantMBeanException ex) {
            ex.printStackTrace();
        } catch (MalformedObjectNameException ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new RuntimeMXBeanTest();
    }
}
