Запуск «cmd.exe» на Java и запись на его стандартный ввод ⇐ JAVA
-
Гость
Запуск «cmd.exe» на Java и запись на его стандартный ввод
Есть пара вопросов, подобных этому (например, здесь и здесь), но ответы не работают.
Вот моя программа:
ProcessBuilder pb = новый ProcessBuilder("cmd", "/k"); Процесс p = pb.start(); Writer w = новый PrintWriter(p.getOutputStream()); w.write("эхо ABCD\n"); w.flush(); Это запускается, но окно консоли не появляется.
Если вместо этого я сделаю это: ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "start"); он создаст окно консоли, но не примет входные данные («echo ABCD\n»), потому что новое окно консоли на самом деле является подпроцессом созданного мной процесса cmd.
Как мне создать процесс cmd, чтобы окно консоли создавалось сразу (без команды «старт»), чтобы я мог отправлять в него текст и он отображался в окне (как если бы оно пришло со стандартного ввода консоли)?
Есть пара вопросов, подобных этому (например, здесь и здесь), но ответы не работают.
Вот моя программа:
ProcessBuilder pb = новый ProcessBuilder("cmd", "/k"); Процесс p = pb.start(); Writer w = новый PrintWriter(p.getOutputStream()); w.write("эхо ABCD\n"); w.flush(); Это запускается, но окно консоли не появляется.
Если вместо этого я сделаю это: ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "start"); он создаст окно консоли, но не примет входные данные («echo ABCD\n»), потому что новое окно консоли на самом деле является подпроцессом созданного мной процесса cmd.
Как мне создать процесс cmd, чтобы окно консоли создавалось сразу (без команды «старт»), чтобы я мог отправлять в него текст и он отображался в окне (как если бы оно пришло со стандартного ввода консоли)?
Мобильная версия