Como pegar os processos? [ Resolvido ]

6 respostas
D

Olá amigos.
Como que eu posso ‘pegar’ os processos? Por exemplo queria saber quando o google chrome está sendo executado. Ou seja, obter o"chrome.exe".

6 Respostas

E

Use o comando do seu sistema operacional que dê essa lista, redirecione a saída para um arquivo, e leia esse arquivo.

No caso do Linux também é possível ler o filesystem /proc em vez de usar o comando ps.

luistiagos

Depende do SO utilizado… no caso do Windows pode usar o tasklist, digita lá tasklist no cmd que ele te retorna todos os processos

D

Obrigado pelas respostas, mas tem que fazer isso tudo mesmo? Não tem uma forma mais pratica e rápida em java?

E

O Java só suporta “nativamente” pegar status de processos que suportem JMX (ou seja, são outros processos Java). É assim que o jconsole e o VisualVM conseguem verificar a presença de aplicativos Java.

Como o Chrome não é um aplicativo Java…

luistiagos

Fiz um exemplo de como vc pode fazer no Windows:

Process p = null;
        byte[] buffer = new byte[1024];
        BufferedInputStream bis = null;
        
        try {
            p = Runtime.getRuntime().exec("tasklist");
            bis = new BufferedInputStream(p.getInputStream());
            
            int bytesR = 0; 
            
            while ((bytesR = bis.read(buffer)) != -1) {
                 String chunk = new String(buffer, 0, bytesR);
                if (chunk.contains("chrome.exe")) {
                    System.out.println("Chrome em execução!");
                    break;
                }
            }
            
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            try {
                bis.close();
            } catch (IOException ex) {
               ex.printStackTrace();
            }
        }

Isto mostra se o chrome esta sendo executado no Windows.

D

Obrigado a todos pela atenção.
O problema foi resolvido, o código postado pelo luistiagos funcionou direitinho, obrigado!

Criado 14 de maio de 2012
Ultima resposta 14 de mai. de 2012
Respostas 6
Participantes 3