import sun.jvmstat.monitor.MonitoredHost;
import sun.jvmstat.monitor.MonitoredVm;
import sun.jvmstat.monitor.MonitoredVmUtil;
import sun.jvmstat.monitor.VmIdentifier;
public class Test {
public static void main(String[] args) throws Exception {
MonitoredHost host = MonitoredHost.getMonitoredHost("localhost");
for (Object processId : host.activeVms()) {
MonitoredVm vm = host.getMonitoredVm(new VmIdentifier("//" + processId + "?mode=r"));
System.out.println("--------------------------------------------");
System.out.println("pid =" + processId);
System.out.println("jvm-args = " + MonitoredVmUtil.jvmArgs(vm));
System.out.println("command-line = " + MonitoredVmUtil.commandLine(vm));
System.out.println("jvm-flags = " + MonitoredVmUtil.jvmFlags(vm));
System.out.println("main-args = " + MonitoredVmUtil.mainArgs(vm));
System.out.println("main-class = " + MonitoredVmUtil.mainClass(vm, true));
System.out.println("vm-version = " + MonitoredVmUtil.vmVersion(vm));
System.out.println();
}
}
}
以前のブログで書いていましたが、最近全く読まないのと、探すのが面倒なんでこっちへ持ってきました。Sun JDK5以降+tools.jarが必須ですが、Javaのプロセス情報が取得できます。