Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Recupero output processo parallelo

    Salve a tutti,

    sono un principiante di Java e vorrei chiedervi un consiglio. Ho scritto dei programmi in C ma volendo un'interfaccia grafica sto usando Netbeans per creare un'interfaccia JAva da cui lanciare i vari programmi C con l'istruzione Runtime.getRuntime().exec("Processo"). Il programma Processo fa un bel po' di cose e la sua conclusione richiede molto tempo. Per questo motivo se Processo viene lanciato da linea di comando restituisce in output una sere di messaggi che informano l'utente sullo stadio di avanzamento del programma. E' possibile incalanare tutto ciò che "processo" manderebbe a video se lanciato da linea di comando direttamente in una casella di testo all'interno dell'interfaccia grafica in Java?

    grazie mille per l'aiuto

  2. #2

    Re: Recupero output processo parallelo

    Originariamente inviato da scamiolo
    Salve a tutti,

    sono un principiante di Java e vorrei chiedervi un consiglio. Ho scritto dei programmi in C ma volendo un'interfaccia grafica sto usando Netbeans per creare un'interfaccia JAva da cui lanciare i vari programmi C con l'istruzione Runtime.getRuntime().exec("Processo"). Il programma Processo fa un bel po' di cose e la sua conclusione richiede molto tempo. Per questo motivo se Processo viene lanciato da linea di comando restituisce in output una sere di messaggi che informano l'utente sullo stadio di avanzamento del programma. E' possibile incalanare tutto ciò che "processo" manderebbe a video se lanciato da linea di comando direttamente in una casella di testo all'interno dell'interfaccia grafica in Java?

    grazie mille per l'aiuto
    Puoi recuperare ciò che il processo scrive sulla console in questo modo:
    codice:
        public static void main(String[] args) throws IOException{
            Process p = Runtime.getRuntime().exec( ... ); // qui il comando per lanciare il tuo programma
            BufferedReader reader = new BufferedReader( new InputStreamReader(p.getInputStream()) );
            
            String line = null;
            while( (line = reader.readLine()) != null )
            	System.out.println("By process: " + line); //ad esempio stampo sulla console del processo corrente
            reader.close();
        }
    Chiaramente devi adattare la soluzione alle tue esigenze.

  3. #3
    Grazie Mille!! Ha funzionato perfettamente!
    Ho però un problema. Con questa funzione alla fine del processo tutto quello che viene scritto in output può essere direzionato ad una casella di testo nell'interfaccia grafica. Così ho fatto. Però tutto l'output viene scritto insieme in un'unica volta. Mi piacerebbe che, visto che il processo è molto lungo, ogni volta che viene scritta una linea di output la corrispondente casella di testo venga aggiornata. E' possibile farlo?

    grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.