La Web del Programador: Comunidad de Programadores
 
    Pregunta:  55824 - ¿COMO LISTAR LOS PROGRAMAS QUE SE ENCUTRAN EN EJECUCION?
Autor:  Harox
Que tal?

Necesito sabes bajo que objeto o que clases en java podria obtener un arreglo o una lista de los con los nombre de los programas que se encuentran ejecutandose actualmente en el computadora.

Por ejemplo necesito algo tipo el comando ps en linux o el Task Manager en windows, donde se listan los programas que actualmente se encuentran en ejecucion.

He estado leyendo algo acerca del uso de el ojeto Runtime pero no se a traves de cuales metodos podria obtener esa lista.

Agradezco su respuesta.

Gracias

  Respuesta:  Luis García
import java.io.*;

import java.util.*;

public class GetProcess {

public static List listRunningProcesses() {
List processes = new ArrayList();
try {
String line;
Process p = Runtime.getRuntime().exec("tasklist.exe /nh");
BufferedReader input = new BufferedReader
(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
if (!line.trim().equals("")) {
// keep only the process name
processes.add(line.substring(0, line.indexOf(" ")));
}

}
input.close();
}
catch (Exception err) {
err.printStackTrace();
}
return processes;
}

public static void main(String[] args){
List processes = listRunningProcesses();
String result = "";

// display the result
Iterator it = processes.iterator();
int i = 0;
while (it.hasNext()) {
result += it.next() +",";
i++;
if (i==10) {
result += "
";
i = 0;
}
}
msgBox("Running processes :
" + result+"
Total No of Processes: "+ processes.size());

}

public static void msgBox(String msg) {
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, msg, "WindowsUtils",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}