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

2022-09-04 02:00:10

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

我需要相同的内容:

$ java MyProgram < data.txt 

答案 1

我假设你有这样的东西:

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

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

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

上述方法可用于单元/集成测试。


答案 2

这可以通过将自己的运行目标添加到项目的生成.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>

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


推荐