Есть ли способ имитировать пользовательский ввод при запуске файла bat из Java? - PullRequest
1 голос
/ 04 октября 2019

Я пытаюсь проверить работу файла bat через junit. В большинстве случаев я могу вызывать и получать коды ответов. Но есть случай, когда пользователь должен дать ручной ввод в терминал, чтобы продолжить. Есть ли способ имитировать ввод или обходной путь для этого?

Примечание: я не могу изменить фактический код для принятия параметров командной строки в качестве ввода.

Я использую построитель процессов, чтобы вызвать мойПример файла bat: -

File dir = new File("E:\\test");
        ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "Start","test.bat");
        pb.directory(dir);
        Process p = pb.start();

1 Ответ

1 голос
/ 04 октября 2019

Вам необходимо использовать pb.redirectInput() для получения входного потока процесса, а затем записать в этот поток данные, которые пользователь будет вводить, если процесс выполняется в интерактивном режиме.

Для документации и примера кода,см .: https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...