Manipular serviços do Windows com java

Senhores!

    Estou desenvolvendo uma aplicação que tem por objetivo monitorar uma determinada tarefa (processo) do Windows e caso este processo feche o programa deverá para um determinado serviço.
    Para isso estou usando a classe Runntime com o seguinte código para monitorar o processo:
public class ListProcess {
     
 public static void main(String[] args) throws IOException {

     SystemRun cmd = new WindowsCmd ();

     while (!(cmd.justTaskList("Calc.exe").isEmpty())){
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                Logger.getLogger(ListProcess.class.getName()).log(Level.SEVERE, null, ex);
            }
     }

     System.out.println("O processo parou");

 }

Com a classe que executa os metodos:

public class WindowsCmd implements SystemRun{

    public List taskList () 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 ;

        List <String> tsk = new ArrayList();
        while ((line = bufferedreader.readLine())!= null){
            tsk.add(line);
        }

        return tsk;
        }

A duvida é quando eu vou parar o serviço, qual metodo eu devo utilizar? será isso:

public void stopService (String service) throws IOException{
       
        Runtime runtime = Runtime.getRuntime();

        String cmds[] = {"cmd", "/c", "net stop" + service};

        Process proc = runtime.exec(cmds);
        
        proc.getOutputStream();
             
    
    }

No aguardo,

Maurijava.

How to Stop windows Service using Java

Valeu… :wink:

Eu uso o taskkill.

+++