Eclipse中的I / O重定向?

时间:2009-04-28 18:24:42

标签: java eclipse io-redirection

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

我想在命令行上重定向标准输入/输出,如java MyProgram <input.txt >output.txt,但我似乎无法在Eclipse中使用它。我尝试将&lt; s作为程序参数的一部分,它被忽略了,并且还在VM参数中,它只是抛出了一个未找到类的错误。我怎么能这样做?

2 个答案:

答案 0 :(得分:12)

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

但是,就我所知,你似乎不能重定向输入(就this Stack Overflow question而言也是如此)。

您对应用程序有多少控制权?如果你不介意一点hack,你可以有几个属性或命令行参数来确定适当的文件,并相应地使用System.setOutSystem.setIn。它有点黑客但是......

答案 1 :(得分:4)

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

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

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

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


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

启动外部工具后,通过“debug launcher'Remote Java Application”部分启动远程调试会话:

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