Para algunos comandos de terminal, que en repetidas ocasiones de salida. Por ejemplo, para algo que se está generando un archivo, es posible que la salida de el por ciento que está completa.
Sé cómo llamar a la terminal de comandos en Java utilizando
Process p = Runtime.getRuntim().exec("command goes here");
pero que no me da una transmisión en vivo de la corriente de salida del comando. ¿Cómo puedo hacer esto para que yo pueda hacer un System.out.println()
cada 100 milisegundos, por ejemplo, para ver cuál es la más reciente salida de el proceso fue.
- Por supuesto, que permite el acceso a STDOUT y STDERR. Consulte docs.oracle.com/javase/7/docs/api/java/lang/Process.html
- Gracias por que. Así, podemos mostrar un ejemplo de cómo utilizar esto para obtener la salida de cada 100 milisegundos, o algo así?
- Consulte stackoverflow.com/questions/3643939/…
- De lectura obligada para cualquier persona que utilice el tiempo de ejecución.exec() javaworld.com/jw-12-2000/jw-1229-traps.html
Usted necesita leer
InputStream
del proceso, aquí hay un ejemplo:Editar he modificado el código como aquí se sugiere para recibir el
errStream
con elstdInput
Para la depuración propósito, usted puede leer la entrada como bytes en lugar de utilizar
readLine
sólo en caso de que el proceso no termina con los mensajes denewLine
newline
o no escribir en elstdout
a todos