Pretendo fazer uma implementação utilizando multiplos parametros do tasklist para encontrar um processo de nome especifico a partir do momento em que o uso de memoria dele ultrapasse determinado valor. Até ai tudo bem, no cmd seria simplesmente assim:
tasklist.exe /fi "imagename eq javaw.exe" /fi "memusage gt 10000"
Porém, ao tentar realizar a mesma ação no Java, eu n consigo inserir o segundo parâmetro "/fi":
System.getenv("windir") +"\\system32\\"+"tasklist.exe /fi \"Imagename eq javaw.exe"+"/fi \"memusage ne 1000\"");
O código completo seria o seguinte:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class ProcessRuning {
public static void main(String[] args) {
try {
String process;
Process p = Runtime.getRuntime().exec(
System.getenv("windir") +"\\system32\\"+"tasklist.exe /fi \"Imagename eq javaw.exe"+"/fi \"memusage ne 1000\"");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((process = input.readLine()) != null) {
System.out.println(process);
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
}
}