是否可以在Eclipse中使用I / O重定向?
我想在命令行上重定向标准输入/输出,如java MyProgram <input.txt >output.txt
,但我似乎无法在Eclipse中使用它。我尝试将&lt; s作为程序参数的一部分,它被忽略了,并且还在VM参数中,它只是抛出了一个未找到类的错误。我怎么能这样做?
答案 0 :(得分:12)
您可以使用“运行”对话框,“常用”选项卡,“标准输入和输出”部分重定向输出。
但是,就我所知,你似乎不能重定向输入(就this Stack Overflow question而言也是如此)。
您对应用程序有多少控制权?如果你不介意一点hack,你可以有几个属性或命令行参数来确定适当的文件,并相应地使用System.setOut
和System.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”部分启动远程调试会话: