Utilizando o seguinte codigo eu consigo finalizar um processo de jar especifico:
Process p = Runtime.getRuntime().exec("C:\\Program Files\\Java\\"+versaoJDK+"\\bin\\jps.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
//JOptionPane.showMessageDialog(null, "Entrou no While!!" + line);
System.out.println("Nome1: "+line);
if (line.contains(processo)) {
String[] getPID = line.split(" ");
//Mata Processo pelo pid
Runtime.getRuntime().exec("taskkill /f /pid " + getPID[0]);
}
}
Porem minha aplicaçao JAR esta executando como usuario Administrador, e os processos dele nao aparece.
Se ao invés de : Process p = Runtime.getRuntime().exec(“C:\Program Files\Java\”+versaoJDK+"\bin\jps.exe");
eu utilizar: Process p = Runtime.getRuntime().exec(“C:\Windows\System32\runas.exe /user:Cleidson-PC\Administrador /savecred “C:\Program Files\Java\”+versaoJDK+”\bin\jps.exe"");
Ele pisca a janela do prompt e mostra os processos que eu quero, porem o resto do codigo nao funciona pois os nomes dos processo nao sao salvos no Buffered.
Existe alguma forma de eu pegar o PID do processo de outros usuarios que nao seja o logado?
Vlw