是否可以在 Eclipse 中使用 I/O 重定向?
我想在命令行上重定向标准输入/输出java MyProgram <input.txt >output.txt
,但我似乎无法让它在 Eclipse 中工作。我尝试将 <'s 作为程序参数的一部分,它被忽略了,也包括在 VM 参数中,它只是抛出了一个找不到类的错误。我怎样才能做到这一点?
是否可以在 Eclipse 中使用 I/O 重定向?
我想在命令行上重定向标准输入/输出java MyProgram <input.txt >output.txt
,但我似乎无法让它在 Eclipse 中工作。我尝试将 <'s 作为程序参数的一部分,它被忽略了,也包括在 VM 参数中,它只是抛出了一个找不到类的错误。我怎样才能做到这一点?
您可以使用“运行”对话框、“通用”选项卡、“标准输入和输出”部分重定向输出。
但是,据我所知,您似乎无法重定向输入(并且据此 Stack Overflow 问题也可以告诉)。
您对您的应用程序有多少控制权?如果您不介意一些 hack,您可以有几个属性或命令行参数来确定适当的文件,并相应地使用System.setOut
和使用System.setIn
。不过,这有点骇人听闻...
要真正重定向两者,最简单的方法仍然是将您的程序定义为外部脚本
"java %1 %2 %3 %4 < %5 > %6"
(根据您的特定程序调整参数数量)
在“运行”菜单中,单击“外部工具.../打开外部工具对话框”并定义一个外部启动配置,您将在其中指定参数以及输入和输出文件。
虽然它不是一个理想的解决方案,因为您不能直接调试您的代码(使用“调试”启动器配置)。
相反,您必须对其进行远程调试(-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
在您的通用 Java 启动器脚本中添加“”)
启动外部工具后,通过“调试启动器‘远程 Java 应用程序’”部分启动远程调试会话: