Cita:
Iniciado por Rubo83 Una pregunta que me estoy haciendo es si habrá algún problema para recoger los datos de la salida estándar de un script y pasárselo a un programa java, sabiendo que estos datos después de su ejecución pasan por una tubería; es decir, la útlima línea del script es:
binario parámetros | iconv -f iso-8859-1 -t utf-8
Ese no debe ser el problema, si el script envía datos hacia la salida standar estos datos son recogidos por el InputStream, sin importar si los sacó de una tubería o los generó él.
Lo único q se me ocurre ahora es:
- En la ejecución de tu script o de tu binario utilicen alguna variable de entorno q no estén encontrando. Según la doc de la clase Process el subproceso creado no tiene su propia terminal. Si ese el el problema podrías utilizar la clase ProcessBuilder a la q le puedes poner las variables de entorno necesarias.
- Estés demorando mucho para leer las salidas del proceso. Nuevamente la doc de la clase te dice: "... failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock... "
Prueba utilizar un thread para leer la salida standar y la salida de errores de forma asíncrona.
Sorry q no pueda ser de más ayuda.
slds;
Nup_