我有以下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文件将更新为没有给出输入的错误消息,程序将正常终止。但这种情况并没有发生。
感谢任何帮助。