Отправка нескольких входов в команду с помощью exec - PullRequest
0 голосов
/ 01 сентября 2011

Мне нужно выполнить команду в командной строке, и после выполнения команды необходимо предоставить серию ответов Да или Нет.Например:


> ./ somecommand (возврат)

Вы уверены в этом?[да / нет]: да (возврат)

Вы действительно уверены в этом?[да / нет]: да (возврат)

Последний шанс.[да / нет]: нет (возврат)

ОК.


Я пытаюсь использовать следующий фрагмент кода для выполнения этой задачи.

try {
   // Execute command
   String command = "somecommand";
   Process child = Runtime.getRuntime().exec(command);

   // Get output stream to write from it
   OutputStream out = child.getOutputStream();

   out.write("yes".getBytes());

   out.flush();      
   out = child.getOutputStream();
   out.write( "yes".getBytes() );

   out.flush();      
   out = child.getOutputStream();
   out.write( "no".getBytes() );

   out.close();
} catch (IOException e) {
}

Как вы можете видеть, я пытался использовать метод 'out = child.getOutputStream ()' три раза, выводя 'out' после каждой записи.Но это не сработало.Есть идеи, как это можно сделать?

1 Ответ

1 голос
/ 26 декабря 2014

Попробуйте команду java readLine() в цикле while.Дайте ему завершающее условие, например Yes или No.

...