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

Redireccionar salida.

Estas en el tema de Redireccionar salida. en el foro de Java en Foros del Web. Hola, buenos días. Tengo una aplicación con diferentes paquetes y cada uno con diferentes clases. Algunas de estas clases contienen diferentes métodos main() . Lanzo ...
  #1 (permalink)  
Antiguo 08/05/2009, 03:30
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 1
Pregunta Redireccionar salida.

Hola, buenos días.

Tengo una aplicación con diferentes paquetes y cada uno con diferentes clases.
Algunas de estas clases contienen diferentes métodos main().

Lanzo la aplicación desde -por ejemplo- el método main número 1 (main1()).
Este a su vez, en cierta parte del código llama a otra clase de otro paquete, y a su correspondiente main (main2()).

El caso, es que main2() genera una salida por pantalla (consola), mi editor es Eclipse, y me gustaría, debo, redireccionar esa salida a un fichero de texto.

Para ahorrar comentarios triviales: no puedo acceder al código nucleo de main2() y redireccionar la salida ahí.
Tampoco me sirve crear un ejecutable aparte y lanzarlo con procesos.

¿Existe algún metodo que copie la salida por pantalla a un fichero?
Gracias de antemano.
  #2 (permalink)  
Antiguo 08/05/2009, 03:54
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Redireccionar salida.

Bueno, ya tengo la solución:

w w w.geocities.com/morris_hirsch/java/sys_tee.html

Es muy sencillo:
1. Incluyes la clase SaveOutput
2. Antes de lanzar main2() escribes SaveOuput.start(fichero), encapsulada en un bloque try-catch-finally
3. En finally { ... } escribes SaveOutput.stop()

Y ya está, ahora tienes en el fichero todo lo que se haya escrito por pantalla.
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 22:55.