在Eclipse中进行I/O重定向?

8

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

我想在命令行中重定向标准输入/输出,例如:java MyProgram <input.txt >output.txt,但是在Eclipse中似乎无法实现。我尝试将<作为程序参数的一部分,但被忽略了;也尝试将其放在VM参数中,结果只是抛出了一个类未找到的错误。有什么办法可以解决这个问题吗?


实际上有一个解决方案,但你可能已经离开了 ;) - VonC
2个回答

12

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

不过,据我所知(以及这个 Stack Overflow 问题所说),似乎不能重定向输入

您的应用程序有多少可控性?如果您不介意一些“hack”,您可以指定一些属性或命令行参数来确定适当的文件,并相应地使用System.setOutSystem.setIn。然而,这确实有点“hack”...


那正是我打算要回复的话... 是的,在eclipse中干净地执行它似乎是不可能的,所以我想我只能保持一个终端开着了。谢谢。 - Simonw

4
为了真正实现重定向两者,最简单的方法仍然是将您的程序定义为外部脚本。
 "java %1 %2 %3 %4 < %5 > %6"

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

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


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

一旦您启动了外部工具,请通过“调试启动器'远程Java应用程序'”部分启动远程调试会话:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接