从批处理文件向java进程提供输入

时间:2010-05-02 15:00:18

标签: java batch-file

如果我有一个简单的java程序来处理来自标准输入的文本行,那么我可以使用以下脚本运行它:

@Echo off
java Test < file.txt
pause
exit

该脚本将file.txt中的输入行重定向到java程序中。

有没有办法可以避免使用单独的文件?或者这是最简单的方法吗?

感谢。

2 个答案:

答案 0 :(得分:4)

使用pipe

这个简单的Java应用程序只打印出来自stdin

的行
public class Dump {
  public static void main(String[] args) {
    java.util.Scanner scanner = new java.util.Scanner(System.in);
    int line = 0;
    while (scanner.hasNextLine()) {
      System.out.format("%d: %s%n", line++, scanner.nextLine());
    }
  }
}

使用此批处理文件调用:

@ECHO OFF
(ECHO This is line one
ECHO This is line two; the next is empty
ECHO.
ECHO This is line four)| java -cp bin Dump
PAUSE

......它会打印出来:

0: This is line one
1: This is line two; the next is empty
2:
3: This is line four

答案 1 :(得分:0)

你可以做一个简单的事情:

$ java Test < file.txt

但是如果您绝对需要pause命令,则必须在脚本上执行此操作,或者在Test类中执行代码暂停行为。