Ciao, ho questo problema: devo lanciare l'esecuzione di un programma con java tenendo salvato un puntatore a tale processo per poterne monitorare l'andamento(se è sempre in esecuzione oppure no) e poterlo interrompere a mio piacimento. Faccio ciò tramite l'istruzione

String comando="path+eseguibile";
ProcessBuilder pb = new ProcessBuilder(comando);
proc=pb.start();

Il problema è che questo programma (non so il motivo in quanto altri programmi non mi avevano mai dato questo problema, forse ci sarà qualche conflitto interno) parte solo quando termina il main oppure nel mio caso che sono dentro una web service parte solo dopo che ho stoppato l'application server.
Ho cercato su internet rimedi possibili ed ho trovato questa soluzione:

comandi[0]="rundll32";
comandi[1]="shell32.dll,ShellExec_RunDLL";
comandi[2]=comando;
ProcessBuilder pb = new ProcessBuilder(comandi);
Process proc=pb.start();

In questo modo viene avviata una shell che, dopo aver fatto partire la finestra con l'istruzione passata, muore subito. Ciò quindi è utilissimo perchè fa partire subito il mio programma, il problema è che l'oggetto proc adesso mi punta alla shell e quindi vede il processo già terminato dopo un attimo.
Come posso fare ad uscire da questo problema??
Grazie