JavaでSIGARまたはOSHI APIを使用して、特定のアプリケーションのOSプロセスの詳細を取得するには?

Stack2Heap:

DOES SIGARまたはOSHIまたは他の同様のAPIは、OSのプロセス情報を引き出すために、最も重要なのは、一般的な機能を箱から出して提供して?

私の要件は、PIDが、特定のプログラムのすべてのOSのプロセス、例えばクロムの他のいくつかの詳細を取得することです。

下記のとおり、私は私の独自の実装を書いたが、私は以下のようにUnixの、Mac用の少し異なる方法で、Solarisのなどを考え出す必要がありますWindowsに固有のものです。SGIAR / OSHIにおける任意のOOTB方法があるかどうかだけで、一般的なものを維持するために、私は疑問に思って。

public static List<String> getNodeDetailsFromWinOs(){
        List<String> nodeList = new ArrayList<String>();
        String process;
        Process p = Runtime.getRuntime().exec("tasklist.exe /nh");
        BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
        while ((process = input.readLine()) != null) 
                        {
                          nodeList.add(process.substring(10, process.indexOf(".")));
                        }
        input.close();
        return nodeList;    
    }
ダニエルWiddis:

OSHIのOSProcessクラスは、Windows、MacOSの、Linuxの、Solaris、およびFreeBSDのため、箱から出して、この機能を提供します。

SystemInfo si = new SystemInfo();
OperatingSystem os = si.getOperatingSystem();
OSProcess[] procs = os.getProcesses(0, null);

for (OSProcess p : procs) {
    if (p.getName().contains("Chrome")) {
        // do stuff with p
    }
}

あなたも見つけることp.getParentProcessPid()os.getChildProcesses(pid)、親クロームプロセスに関連付けられている(名称「クローム」は含まない)他のプロセスを識別するのに便利な方法を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=316356&siteId=1