Obtenir le moniteur d'activité (Mac OSX) via Java


Existe-t-il un moyen d'utiliser Java pour obtenir une liste de tous les processus actifs s'exécutant sur un Mac?

Je peux le faire sous Windows en utilisant le code ci-dessous pour renvoyer la liste des tâches, mais cela lève une exception sur un Mac. Je veux que mon application s'arrête si certaines applications sont également en cours d'exécution.

Des idées? Grâce.

Code Windows:

Process p = Runtime.getRuntime().exec("tasklist.exe /nh");
            BufferedReader input = new BufferedReader
            (new InputStreamReader(p.getInputStream()));

            //while there are more processes in the task manager list
            while ((line = input.readLine()) != null) {
                      //insert code here for each task running
            }
Author: Raaz, 2009-07-20

2 answers

  String line;
  String sysUserName=System.getProperty("user.name");
    Process p = Runtime.getRuntime().exec("tasklist /fi  \"username      eq"+sysUserName+"\""); // for windows
    // Process p = Runtime.getRuntime().exec("ps -u "+sysUserName+""); // for mac
    BufferedReader input =
            new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line); //<-- Parse data here.

    }
    input.close();
 2
Author: Raaz, 2011-09-07 06:42:28

Liste de tâches.exe n'existe pas sur Mac. Utilisez quelque chose comme ps-eaf

 1
Author: Alan, 2009-07-20 17:14:25