Stallo con Java process.waitFor()
DOMANDA: Nell'eseguire un programma esterno con Runtime.exec(), perché se uso il metodo process.waitFor() va tutto in stallo? package process; import java.io.IOException; public class ProcessTest { public static void main(String[] args) throws IOException, InterruptedException { Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec( "cmd /C C:\\ffmpeg -i C:\\input.avi C:\\output.avi" ); process.waitFor(); System.out.println( "FINE" ); } } RISPOSTA: Eseguendo il codice della domanda, la stringa "FINE" non verrà mai eseguita. La causa del problema è la bufferizzazione di stdout e stderr . Infatti spesso capita che i dati in arrivo ai vari stream non siano sufficienti a riempire completamente i buffer. Quindi, finché i buffer n...