Mi programa Java usa ProcessBuilder (con redirectErrorStream set true) y tiene un bucle que ejecuta el método de lectura de inputstream de los procesos, que es de bloqueo. El programa externo que estoy llamando deja de esperar la entrada y el stdin. Ahora quiero matar el proceso. ¿No se hace esto (en un hilo separado) llamando al método de destrucción del proceso y llamando al método de cierre de inputstream para evitar que el método de lectura bloquee más, de modo que mi hilo inicial pueda terminar con su vida útil?¿por qué bloquea el inputtream.close() de java?
Por alguna razón process.getInputStream().close()
bloques. Desde JavaDoc no veo por qué puede suceder esto. Además, no entiendo por qué el javadoc dice "El método cercano de InputStream no hace nada". (link to javadoc) ¿Podría alguien explicar esto?
Gracias :-)
¿Está seguro de que esto no ocurre debido al programa externo que está ejecutando? – Geo