Senhore, bom dia.
Estou tentando ler os processos do windows que estão em execução, preciso a principio ler o consumo de memoria de determinado processo.
Estou usando o RunTime para executar o Tasklist.
Consigo carregar o BufferedReader.
Mas não consigo ler a linha exata.
Será que tenho que salvar em um txt para e fazer o filtro na linha para capturar o consumo da memoria?
Segue o codigo:
public class processoWindows {
public static void main(String[] args) throws IOException {
Runtime runtime = Runtime.getRuntime();
String cmds[] = {"cmd", "/c","tasklist"};
Process proc = runtime.exec(cmds);
InputStream inputstream = proc.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
String line = null;
while ((line = bufferedreader.readLine()) != null) {
if (line.substring(0, 7).equalsIgnoreCase("cmd.exe")){//To tentando pegar primeiro a linha do processo, para depois tentar pegar o consumo da memoria
System.out.println(line);
}
}
}
}
Segue o erro:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.substring(String.java:1934)
at processoWindows.main(processoWindows.java:37)
Java Result: 1
Obrigado.
