Ciao a tutti!
Ho creato una classe per lanciare un eseguibile esterno. La classe è la seguente:
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?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(); } } }
Infine, altro problema, quando lancio interrupt() il programma non si ferma. Come mai?

Rispondi quotando