Foros del Web » Programación para mayores de 30 ;) » Java »

Redireccionar/capturar salida de procesos

Estas en el tema de Redireccionar/capturar salida de procesos en el foro de Java en Foros del Web. Hola: Actualmente, en una aplicación que estoy desarrollando utilizo llamadas a Runtime.exec para compilar otros ficheros en Java. La salida de ese proceso no aparece ...
  #1 (permalink)  
Antiguo 08/06/2007, 01:56
 
Fecha de Ingreso: mayo-2007
Mensajes: 6
Antigüedad: 17 años
Puntos: 0
Redireccionar/capturar salida de procesos

Hola:

Actualmente, en una aplicación que estoy desarrollando utilizo llamadas a Runtime.exec para compilar otros ficheros en Java. La salida de ese proceso no aparece por ninguna parte (ni por terminal ni por ningun sitio), y me gustaría saber si hay alguna forma de que mi aplicación pueda capturar, por ejemplo, los errores de compilación que se produzcan.

Me consta que el proceso que crea la aplicación realiza bien su trabajo, puesto que los ficheros se compilan, pero estoy interesado en poder conocer a través de la aplicación qué errores se encontraron, por ejemplo, cosa que ahora me resulta imposible saber.

He probado a redireccionar a un fichero la salida de ese proceso con '>' pero no ha dado fruto alguno (ni siquiera crea el fichero). He probado a llamar yo manualmente a javac redireccionando a un fichero ("javac clase.java >fichero.txt") y sí crea el fichero pero los errores de compilación siguen apareciendo sólo en el terminal de DOS.

Mil gracias.

Última edición por masTelevision; 08/06/2007 a las 01:56 Razón: Cambiar tipo de notificación
  #2 (permalink)  
Antiguo 08/06/2007, 03:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Redireccionar/capturar salida de procesos

¿Que version del JDK usas? Lo digo por que Java 6 tiene utilidades para llamar al compilador sin tener que usar Runtime.exec()

De todas formas, el output de los procesos ejecutados con Runtime.exec() se puede capturar, a través del objeto Process que devuelve.

S!
  #3 (permalink)  
Antiguo 08/06/2007, 08:08
 
Fecha de Ingreso: mayo-2007
Mensajes: 6
Antigüedad: 17 años
Puntos: 0
Re: Redireccionar/capturar salida de procesos

Hola:

Si, cambié a la version 6 precisamente por eso, aunque finalmente no logré sacar el código que es capaz de realizar la compilacion de las clases. Estuve investigando, pero no encontré mucha documentacion al respecto y desisti.

Me tuve que apañar con establecer un tiempo limite para que si en ese tiempo no se ha generado el correspondiente .class, la aplicación entienda que es que el fichero no compila (pero claro, de ver qué errores hay, ni hablamos).

Si algun alma caricativa me echa una mano en ese aspecto, se lo agradeceria mucho.

Gracias, veré a ver qué puedo sacar del objeto Process porque estoy muy interesado en eso.
  #4 (permalink)  
Antiguo 08/06/2007, 09:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Redireccionar/capturar salida de procesos

Si puedes usar el API de Java 6, creo que serás más comodo e independiente de S.O., así que seguiría intentando por ahí:

http://www.javabeat.net/javabeat/jav...iler_api_1.php
http://java.sun.com/javase/6/docs/ap...e-summary.html

En caso de seguir por el otro lado, en vez de Runtime.exec tambien podrías usar ProcessBuilder, nuevo desde Java 5: http://java.sun.com/j2se/1.5.0/docs/...ssBuilder.html
y que parece más comodo de usar.

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:42.