Я работаю над чтением вывода скрипта, который вызывается с использованием процесса Java. Тем не менее, в середине запуска скрипта он будет в НЕКОТОРЫХ ситуациях попросить пользователя ответить y/n для продолжения. Однако, прочитав много сообщений в StackOverflow, я все еще задерживаюсь при обнаружении приглашения и затем отправляю ответ, пока процесс все еще запущен.Чтение состояния процесса Java с помощью InputStream, а затем отправки команд с помощью OutputStream
Если у кого-то есть идеи, это было бы замечательно.
Я пробовал читать из класса Scanner и System.console, чтобы не превалировать.
Вот часть кода, который я использую.
Process p;
String file = "./upgrade.sh";
cmds.add(file);
cmds.add(sourcePath);
cmds.add(outputDirectoryPath);
cmds.add(zip);
cmds.add("-c");
//}
pb = new ProcessBuilder(cmds);
pb.directory(new File(binDir));
p = pb.start();
BufferedReader reader = new BufferedReader (new InputStreamReader(p.getInputStream()));
BufferedReader reader2 = new BufferedReader (new InputStreamReader(p.getErrorStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
try
{
String line = reader.readLine();
while (line != null)
{
System.out.println(line);
line = reader.readLine();
}
reader.close();
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
p.destroy();
Было бы лучше, если бы ваш сценарий имел не интерактивный режим работы. – fge
К сожалению, у меня нет контроля над сценарием –