Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/11/2010, 08:22
Avatar de nup_
nup_
 
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 14 años
Puntos: 32
Respuesta: Comunicación entre shell, java y codificación

Cita:
Iniciado por Rubo83 Ver Mensaje
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_