2009-04-28 23 views
8

¿Es posible utilizar la redirección de E/S en Eclipse?Redirección de E/S en Eclipse?

Quiero redirigir la entrada/salida estándar en la línea de comandos como java MyProgram <input.txt >output.txt, pero parece que no puedo hacer que funcione en Eclipse. Intenté incluir el < como parte de los argumentos del programa, que se ignoraron, y también en los argumentos de la máquina virtual, que acaban de arrojar un error de clase no encontrada. ¿Cómo puedo hacer esto?

+0

en realidad no es una solución, pero es posible que ya se ha ido;) – VonC

Respuesta

4

Para redirigir verdad tanto, la forma más sencilla es todavía para definir su programa como un script externo

"java %1 %2 %3 %4 < %5 > %6" 

(adaptar el número de parámetros a su programa en particular)

en el menú Ejecutar, haga clic en 'Herramientas externas .../Abrir diálogo Herramientas externas" y definir una configuración de lanzamiento externo en el que se especifique tanto los argumentos como el archivo de entrada y de salida.


No es una solución ideal, ya que no puede depurar directamente su código (con una configuración de iniciador "debug").
su lugar se tienen que depurar a distancia que (añadir '-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000' en su genérica guión lanzador Java)

Una vez que haya puesto en marcha su herramienta externa, inicie una sesión de depuración remota a través de la "depuración lanzador 'Aplicación Java Remote'" sección :

Remote Debug, after blog.jmwyttenbach.net/wp-content/uploads/2007/10/eclipseremotedebug.jpg

12

Puede redireccionar salida utilizando el cuadro de diálogo Ejecutar, pestaña Común, sección "Entrada y salida estándar".

Sin embargo, no parece que puede redirigir de entrada por lo que yo puedo decir (y por lo que this Stack Overflow question puede decir, también).

¿Cuánto control tiene sobre su aplicación? Si no te importa un truco, puedes tener un par de propiedades o argumentos de línea de comando para determinar los archivos apropiados, y usar System.setOut y System.setIn en consecuencia. Se es un poco de un truco, aunque ...

+0

eso es lo que estaba a punto de responder a decir ... Sí, parece que no es posible hacerlo de forma limpia en eclipse, así que mantendré una terminal abierta, supongo. Gracias – Simonw