2009-07-20 13 views
1

Existe-t-il un moyen d'utiliser Java pour obtenir une liste de tous les processus actifs s'exécutant sur un Mac?Récupère le moniteur d'activité (Mac OSX) via Java

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

Des idées? Merci.

Windows Code:

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 
      } 

Répondre

1

tasklist.exe n'existe pas sur Mac. Utiliser quelque chose comme ps -eaf

+0

J'ai besoin de surveiller les processus par programme. Est-ce qu'il y a un moyen de faire ça? Je ne sais pas taper cette commande dans le terminal va retourner à mon programme un tableau de quelque sorte avec tous les noms de processus. –

2
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();