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

den*_*nys 12 java netbeans maven

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

我需要同样的:

$ java MyProgram < data.txt 
Run Code Online (Sandbox Code Playgroud)

khm*_*ise 11

我假设你有这样的事情:

public static void main(String[] args) {
...
}
Run Code Online (Sandbox Code Playgroud)

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

FileInputStream is = new FileInputStream(new File("test.data"));
System.setIn(is);
Run Code Online (Sandbox Code Playgroud)

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


Zer*_*Tau 6

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

<target name="run" depends="jar">
  <exec dir="${work.dir}" executable="java" input="${work.dir}/inputfile.txt">
    <arg value="-jar"/>
    <arg file="${dist.jar}"/>
  </exec>
</target>
Run Code Online (Sandbox Code Playgroud)

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