我正在尝试运行一个控制台进程,我可以随后编写更多命令。我的代码就是这个
ExecutorService service = Executors.newFixedThreadPool(2);
Process process = Runtime.getRuntime().exec("cmd.exe");
service.submit(new StreamReader(process.getInputStream(), System.out, "OUTPUT"));
service.submit(new StreamReader(process.getErrorStream(), System.err, "OUTPUT"));
//process.getOutputStream().close();
PrintWriter writer = new PrintWriter(process.getOutputStream());
Scanner sc = new Scanner(System.in);
while(true){
writer.println(sc.nextLine());
}
}
流阅读器只需读取InputStream
并使用PrintWriter
将其写出来。如果我关闭OutputStream
,我只会看到cmd.exe的输出。我在这里遇到什么问题以及如何让用户提供更多命令(如果我关闭OutputStream
没有其他命令'输出打印到控制台)。
答案 0 :(得分:2)
你应该在StreamReader中刷新()PrintWriter。