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".
Como pegar os processos? [ Resolvido ]
6 Respostas
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.
Depende do SO utilizado… no caso do Windows pode usar o tasklist, digita lá tasklist no cmd que ele te retorna todos os processos
Obrigado pelas respostas, mas tem que fazer isso tudo mesmo? Não tem uma forma mais pratica e rápida em java?
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…
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.
Obrigado a todos pela atenção.
O problema foi resolvido, o código postado pelo luistiagos funcionou direitinho, obrigado!