package com.performizeit.mjprof.plugins.dataSource; import sun.jvmstat.monitor.*; import java.net.URISyntaxException; import java.util.Iterator; import java.util.Set; /** * Created by life on 2/11/14. */ public class JPSUtil { public static int lookupProcessId(String lookForMainClass) throws MonitorException, URISyntaxException { HostIdentifier hostId = new HostIdentifier("local://localhost"); MonitoredHost monitoredHost = MonitoredHost.getMonitoredHost(hostId); // get the set active JVMs on the specified host. Set jvms = monitoredHost.activeVms(); for (Object jvm : jvms) { int lvmid = (Integer) jvm; MonitoredVm vm = null; String vmidString = "//" + lvmid + "?mode=r"; VmIdentifier id = new VmIdentifier(vmidString); vm = monitoredHost.getMonitoredVm(id, 0); String mainClass = MonitoredVmUtil.mainClass(vm, false); if (mainClass.equals(lookForMainClass)) return lvmid; } return -1; } }