Я пытаюсь запустить консольный процесс, в который я могу впоследствии написать дальнейшие команды. Код у меня есть этоКак запустить процесс из приложения Java?
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
. Я вижу только вывод cmd.exe, если я закрою OutputStream
. Что мне здесь не так, и как я могу заставить пользователя предоставить дополнительные команды (если я закрываю OutputStream
, то на консоль не выводятся дальнейшие команды).