Java ProcessBuilder在执行要求扫描程序输入的java文件时不会抛出错误

时间:2014-03-03 19:22:25

标签: java windows console processbuilder

我有以下java程序program1.java:

public static void main(String[] args){
   Scanner input = new Scanner(System.in);
   input.nextLine();
   System.out.println("Hello World!");  
}

现在,我正在尝试使用ProcessBuilder从另一个java文件中执行此java文件(编译后)。这是代码:

List<String> paramsExecute = new ArrayList<String>();
paramsExecute.add("java");
paramsExecute.add(program1);
ProcessBuilder builderExecute = new ProcessBuilder(paramsExecute);
builderExecute.redirectOutput(out.txt);
builderExecute.redirectError(error.txt); 
System.out.println("before start");
Process p = builderExecute.start();
p.waitFor();
System.out.println("after start");

当我运行上面的Java程序时,我得到输出:

before start
after start
before start
after start
before start
---

然后卡住了,程序没有终止。

我想要的是,error.txt文件将更新为没有给出输入的错误消息,程序将正常终止。但这种情况并没有发生。

感谢任何帮助。

0 个答案:

没有答案