Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Viene aperto in un processo diverso.

    Prova a chiamare waitFor() sul tuo Process.
    Grazie della risposta Alex! Purtroppo pero' penso che non sia la strada giusta.
    Infatti, AFAIK, usando la waitFor() aspetterei la conclusione del processo MA scrivendo una cosa cosi'
    codice:
    double startTime=System.nanoTime();
    
    Process satProcess=Runtime.getRuntime().exec(cmd);
    satProcess.waitFor();
    
    double stopTime=System.nanoTime();
    se il satProcess produce un output abbastanza grande da riempire il buffer, la waitFor() attende all'infinito che questo venga letto. Quindi dovrei mettere la waitFor dopo la lettura dell'output di satProcess ma questo mi andrebbe a sfasare le tempistiche...
    Quanti programmatori sono necessari per cambiare una lampadina?
    Nessuno, e' un problema hardware.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Mercuzio Visualizza il messaggio
    se il satProcess produce un output abbastanza grande da riempire il buffer, la waitFor() attende all'infinito che questo venga letto.
    In generale, se il processo avviato scrive su standard-output e/o standard-error, allora tale output va letto da codice Java.
    Se leggi solo uno dei due in modo "sincrono" dopo la exec, la wait basta che sia dopo.
    Se devi leggere entrambi gli stream, o ne leggi uno sincrono e l'altro asincrono (in un thread) o entrambi asincroni.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.