Ciao a tutti!

Ho creato una classe per lanciare un eseguibile esterno. La classe è la seguente:

codice:
public class ExternalProgram extends Thread{
	private String[] command = {"cmd","/C","start", null}; 
	
	ExternalProgram(String s){
		command[3] = s;
	}
	
	public void run(){
        String line = null;
		try{
			Process pr = Runtime.getRuntime().exec(command,null, new File(System.getProperty("user.home") + "\\workspace\\SocialNetworkInterface\\crawler")); 
            InputStream is = pr.getInputStream();
	    InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            pr.waitFor();
            System.out.println(" returned " + pr.exitValue());
            while ((line = br.readLine()) != null)
                System.out.println(line);
        }catch(InterruptedException e){
            System.out.println("Processo interrotto");
        } catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}
Per lanciare l'eseguibile creo un oggetto di tipo ExternalProgram (da un'altra classe) con il nome dell'eseguibile e poi lancio ep.start(). All'avvio si apre una finestrella DOS e il programma inizia a girare. Visto che questo programma stampa a schermo alcune cose, a me servirebbe catturarle per poi poterle mettere in una JTextArea. Ora per provare le sto stampando su System.out, però facendo così non stampa niente. Dov'è che sbaglio?

Infine, altro problema, quando lancio interrupt() il programma non si ferma. Come mai?