我有一个运行 shell 命令的 Java 程序。一切正常,我可以查看命令是否有效或有错误...除了命令提示用户输入更多信息时。
例如,当我运行命令ssh-keygen -t rsa -b 4096 -f my_key_name时,程序将永远旋转而不返回给用户,因为它正在等待我输入密码。现在我知道我可以-P ""跳过我添加密码,但我的问题是其他提示信息的命令。
我只想知道如何将提示文本返回给用户(因为我并不真正需要用户输入他们对提示的响应的能力)。
RunCommandDto runCommandDto = new RunCommandDto();
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec('ssh-keygen -t rsa -b 4096 -f my_key_name');
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
String output = "";
while ((String sInOut = stdInput.readLine()) != null) {
output += sInOut + "\n";
}
while ((String sErr = stdError.readLine()) != null) {
output += sErr + "\n";
}
繁华开满天机
相关分类