Me pregunto si hay alguna manera de poder cambiar la salida predeterminada (System.out) para la secuencia de comandos groovy que estoy ejecutando desde mi código de Java.¿Cómo redirigir la salida de la secuencia de comandos de Groovy?
Aquí está el código de Java:
public void exec(File file, OutputStream output) throws Exception {
GroovyShell shell = new GroovyShell();
shell.evaluate(file);
}
Y el script de ejemplo maravilloso:
def name='World'
println "Hello $name!"
Actualmente la ejecución del método, evalúa los guiones que escribe "Hello World!" a la consola (System.out). ¿Cómo puedo redireccionar la salida al OutputStream pasado como parámetro?
Eso funcionaría, pero me gustaría redirigir * cualquier * salida escrita en la salida estándar. Especialmente por funciones incorporadas tales como println(). –
Estabas * a * la derecha. La solución es envolver la salida int java.io.PrintStream y pasar como propiedad "out" al shell. –
yay !, ¡mi primera placa de bronce! ¡Feliz que funciona! ¿Cómo envolvió la salida? – jjchiw