Ciao a tutti...ho realizzato un programma in java che manda in esecuzione un .exe (scritto in c++)...l'idea è quello di ospitarlo in una finestra in java...fino qui tutto bene...ho utilizzato il seguente codice...
codice:
String prog_exe = new String("C:\\prova.exe");
Runtime r = Runtime.getRuntime();
Process process = r.exec (prog_exe);
InputStream stdout = process.getInputStream ();
InputStreamReader inputstreamreader = new InputStreamReader(stdout);
BufferedReader brCleanUp = new BufferedReader (inputstreamreader);
while ((line = brCleanUp.readLine ()) != null) {
System.out.println ("[Stdout] " + line);
}
in output mi viene visualizzato l'elaborazione del programma prova.exe...
Il problema è questo per come è strutturato il programma di prova (per altro molto semplice) vorrei che mi venisse visualizzato l'elaborazione mano a mano che questa viene eseguita e che stampa a video...mi spiego meglio prova.exe è organizzato nel seguente modo...
stampa a video
sleep(2);
stampa a video
speep(2);
stampa a video
le operazioni di stampa a video sono intervallate da un tempo di attesa...quando vado a richiamare il mio programma all'interno della classe in java questo aspetta la fine dell'elaborazione e poi stampa tutto...io vorrei che mano a mano che queste stampe venissero eseguite fossero poi stampate anche dal programma in java che è collegato allo stdout di quello .exe
Spero di essermi spiegato...faccio notare che sto lavorando in windows ma che provando ad eseguire un file sh in Linux, che fa le stesse cose del mio in c++, alla classe in java non riscontro questi problemi, anzi l'esecuzione delle istruzioni viene mantenuto e trascritta con gli stessi intervalli che ho specificato...mano a mano che vengono eseguite le stampe a video dal file.sh
Spero di essere stato chiaro...se qualcuno ha qualche consiglio...