8

是否可以在 Eclipse 中使用 I/O 重定向?

我想在命令行上重定向标准输入/输出java MyProgram <input.txt >output.txt,但我似乎无法让它在 Eclipse 中工作。我尝试将 <'s 作为程序参数的一部分,它被忽略了,也包括在 VM 参数中,它只是抛出了一个找不到类的错误。我怎样才能做到这一点?

4

2 回答 2

12

您可以使用“运行”对话框、“通用”选项卡、“标准输入和输出”部分重定向输出。

但是,据我所知,您似乎无法重定向输入(并且据此 Stack Overflow 问题也可以告诉)。

您对您的应用程序有多少控制权?如果您不介意一些 hack,您可以有几个属性或命令行参数来确定适当的文件,并相应地使用System.setOut和使用System.setIn。不过,这有点骇人听闻...

于 2009-04-28T18:30:36.317 回答
4

要真正重定向两者,最简单的方法仍然是将您的程序定义为外部脚本

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

(根据您的特定程序调整参数数量)

在“运行”菜单中,单击“外部工具.../打开外部工具对话框”并定义一个外部启动配置,您将在其中指定参数以及输入和输出文件。


虽然它不是一个理想的解决方案,因为您不能直接调试您的代码(使用“调试”启动器配置)。
相反,您必须对其进行远程调试(-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000在您的通用 Java 启动器脚本中添加“”)

启动外部工具后,通过“调试启动器‘远程 Java 应用程序’”部分启动远程调试会话:

远程调试,在 blog.jmwyttenbach.net/wp-content/uploads/2007/10/eclipseremotedebug.jpg 之后

于 2009-04-28T18:35:53.513 回答