2010-02-05 4 views

ответ

3

Я бы рекомендовал также использовать утилиту qprocess, тогда, если вам нужна дополнительная информация о процессе, используйте wmic.

Пример:

String line; 
try { 
     Process proc = Runtime.getRuntime().exec("wmic.exe"); 
     BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
     OutputStreamWriter oStream = new OutputStreamWriter(proc.getOutputStream()); 
     oStream .write("process where name='explorer.exe'"); 
     oStream .flush(); 
     oStream .close(); 
     while ((line = input.readLine()) != null) { 
      System.out.println(line); 
     } 
     input.close(); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } 

См http://ss64.com/nt/wmic.html или http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp для некоторых примеров того, что вы можете получить от WMIC ...

0

вы можете найти SO для подобных ответов. один here. Посмотрите, соответствует ли это вашим потребностям. Кроме того, в сети много решений. поиск google для них

2

Вы можете запустить некоторую командную строку из Java для сбора информации о процессах. Например:

Process process = Runtime.getRuntime().exec("qprocess"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); 

Затем вы только что прочитали его вывод и проанализировали его. qprocess - стандартная утилита Windows XP. В других версиях Windows вам, вероятно, понадобится еще одна утилита.

0
package com.vipul; 

import java.applet.Applet; 
import java.awt.Checkbox; 
import java.awt.Choice; 
import java.awt.Font; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.List; 

public class BatchExecuteService extends Applet { 
    public Choice choice; 

    public void init() 
    { 
     setFont(new Font("Helvetica", Font.BOLD, 36)); 
     choice = new Choice(); 
    } 

    public static void main(String[] args) { 
     BatchExecuteService batchExecuteService = new BatchExecuteService(); 
     batchExecuteService.run(); 
    } 

    List<String> processList = new ArrayList<String>(); 

    public void run() { 
     try { 
      Runtime runtime = Runtime.getRuntime(); 
      Process process = runtime.exec("D:\\server.bat"); 
      process.getOutputStream().close(); 
      InputStream inputStream = process.getInputStream(); 
      InputStreamReader inputstreamreader = new InputStreamReader(
        inputStream); 
      BufferedReader bufferedrReader = new BufferedReader(
        inputstreamreader); 
      BufferedReader bufferedrReader1 = new BufferedReader(
        inputstreamreader); 

      String strLine = ""; 
      String x[]=new String[100]; 
      int i=0; 
      int t=0; 
      while ((strLine = bufferedrReader.readLine()) != null) 
      { 
     //  System.out.println(strLine); 
       String[] a=strLine.split(","); 
       x[i++]=a[0]; 
      } 
    //  System.out.println("Length : "+i); 

      for(int j=2;j<i;j++) 
      { 
       System.out.println(x[j]); 
      } 
     } 
     catch (IOException ioException) 
     { 
      ioException.printStackTrace(); 
     } 

    } 
} 

вы можете создать пакетный файл, как

TaskList/об/FI "STATUS eq running"/FO "CSV"/FI "Имя пользователя eq LHPL002 \ soft"/FI "MEMUSAGE gt 10000"/FI "Windowtitle ne N/A"/NH

Смежные вопросы