在Eclipse中使用I/O重定向是否可能?
我想在命令行中重定向标准输入/输出,例如:java MyProgram <input.txt >output.txt
,但是在Eclipse中似乎无法实现。我尝试将<作为程序参数的一部分,但被忽略了;也尝试将其放在VM参数中,结果只是抛出了一个类未找到的错误。有什么办法可以解决这个问题吗?
在Eclipse中使用I/O重定向是否可能?
我想在命令行中重定向标准输入/输出,例如:java MyProgram <input.txt >output.txt
,但是在Eclipse中似乎无法实现。我尝试将<作为程序参数的一部分,但被忽略了;也尝试将其放在VM参数中,结果只是抛出了一个类未找到的错误。有什么办法可以解决这个问题吗?
您可以使用“运行”对话框,常规选项卡,“标准输入和输出”部分来重定向输出。
不过,据我所知(以及这个 Stack Overflow 问题所说),似乎不能重定向输入。
您的应用程序有多少可控性?如果您不介意一些“hack”,您可以指定一些属性或命令行参数来确定适当的文件,并相应地使用System.setOut
和System.setIn
。然而,这确实有点“hack”...
"java %1 %2 %3 %4 < %5 > %6"
(根据您特定的程序调整参数数量)
在“运行”菜单中,单击“外部工具... /打开外部工具对话框”,并定义一个外部启动配置,在其中指定参数、输入和输出文件。
然而,这不是一种理想的解决方案,因为您无法直接使用“调试”启动器配置来调试代码。
相反,您必须通过远程调试来进行调试(在通用Java启动脚本中添加“-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
”)。
一旦您启动了外部工具,请通过“调试启动器'远程Java应用程序'”部分启动远程调试会话: