我正在阅读使用 Java 进程调用的脚本的输出。但是,在脚本运行的中间,它会在某些情况下提示用户回答 y/n 以继续。但是,在阅读了 StackOverflow 上的许多帖子后,我仍然坚持检测提示,然后在进程仍在运行时发送响应。
如果有人有任何想法,那就太棒了。
我试过从 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();