有没有办法在Netbeans中将输入从文件重定向到stdin?

我正在使用Netbeans和Maven开发应用程序。 我的应用程序应该从stdin获取数据。 但我无法理解如何测试它。 将< data.txt放入args列表不起作用。

我需要同样的:

 $ java MyProgram < data.txt 

这可以通过将您自己的运行目标添加到项目的build.xml文件来完成。 例如:

       

请注意,如果为项目关闭“保存时编译”function,则“运行”,“调试”和“测试”等命令仅使用自定义build.xml。 因此,您需要确保在项目的属性中关闭“保存时编译”。

我假设你有这样的事情:

 public static void main(String[] args) { ... } 

这可以用作应用程序的入口点,在此之前您可以通过以下方式更改输入通道:

 FileInputStream is = new FileInputStream(new File("test.data")); System.setIn(is); 

以上内容可用于单元/集成测试。

我不确定它是如何在NetBeans中,但在eclipse中你可以写一些东西到控制台,它被重定向为STDIN运行应用程序。 我相信同样适用于NetBeans。 因此,只需运行您的应用程序,然后将data.txt内容复制/粘贴到控制台,并可能按

如果没有任何帮助使用远程调试,即从命令提示符运行您的程序,如下所示:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y MyProgram < data.txt

然后从NetBeans连接到此进程。

老学校,但这就是我所知道的。 需要注意的是,mvn命令在完成后不会返回cli,但出于某些目的,这是可以接受的。 请注意,您需要位于项目根目录中

mvn“-Dexec.args = -classpath%classpath com.mycompany.test”-Dexec.executable = / Downloads / jdk1.7 / bin / java exec-maven-plugin:1.2.1:exec

使用以下文本在Files-> build.xml下添加新目标“run-input”。 注意:此版本使用java运行时的正确位置。 此外,它假定您已使用文件input1创建了一个名为inputs的目录。

       

您始终可以为此新目标创建快捷方式。