Originariamente inviato da Macgiglio
visto che il programma è lanciato in un'altra classe non riesco ad ottenere il reference.
E allora? Cosa vuol dire??? Guarda che è solo questione di "design" delle classi!!!
Anzi ... vuoi una idea? Si potrebbe fare un design tale per cui non devi nemmeno far ritornare i Process. Fai una classe:
codice:
import java.util.*;
public class Esecutore {
private LinkedList<Process> listaProcessi;
public Esecutore() {
listaProcessi = new LinkedList<Process>();
}
public void esegui(String comando) throws IOException {
Process p = Runtime.getRuntime().exec(comando);
listaProcessi.add(p);
}
public void terminaTutti() {
while (!listaProcessi.isEmpty())
listaProcessi.remove(0).destroy();
}
}
}
Nella tua applicazione istanzierai solo 1 volta un Esecutore, quindi potrai invocare tutti gli esegui() che vuoi e quando vuoi terminare la applicazione invochi semplicemente terminaTutti() sulla istanza del tuo Esecutore.
Lo vedi che la gestione dei Process è incapsulata in Esecutore?? Non devi restituire un ben niente!!
Ripeto: è solo questione di "design"