使用Java Mac获取PID

时间:2015-11-06 14:15:49

标签: java macos netbeans

这些方法依赖于以下导入。这些都是旧的,阅读不应该使用它。这只适用于java 6,我想将此更新到java 8.

有没有人知道如何在OS X上使用Java 8获取PID?

import sun.jvmstat.monitor.*;
import java.lang.management.*;


        public String getUsageDescription()
        {
            System.out.println("** Get Usage Description");
            int pid = 0;
            RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean();
            pid = Integer.parseInt(rt.getName().substring(0,rt.getName().indexOf("@")));
            System.out.println("Run Time PID = "+pid);
            return new String(getDeviceName()+" "+Integer.toString(pid));
        }


        public static boolean isPIDInUse(int pid)
        {
            try{
                String s = null;
                int java_pid;
                MonitoredHost host = MonitoredHost.getMonitoredHost(s);
                for(Object activeVmPID : host.activeVms())
                {
                    java_pid = (Integer)activeVmPID;
                    System.out.println("****************PID = "+java_pid);
                    if(java_pid == pid){
                        System.out.println("In Use\n");
                        return true;
                    }
                }
            }
            catch(Exception e)
            {
                System.out.println("Exception:  "+e.getMessage());
            }
            return false;

        }

解决方案:

public static boolean isPIDInUse(int pid) {

        try {

            String s = null;
            int java_pid;

            RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean();
            java_pid = Integer.parseInt(rt.getName().substring(0, rt.getName().indexOf("@")));

            if (java_pid == pid) {
                System.out.println("In Use\n");
                return true;
            }
        } catch (Exception e) {
            System.out.println("Exception:  " + e.getMessage());
        }
        return false;
    }

1 个答案:

答案 0 :(得分:1)

使用第一种方法。它适用于Java 8,不使用内部API。

请注意,您无需使用new String(String)