ランタイムを使用して、パスワードを 2 回受け入れるコマンドを実行しています (パスワードの入力、パスワードの確認など)。次のコードを使用しています。私が直面している問題は、パスワードの確認を待っているため、プログラムがハングすることです。最初のパスワードは正しく渡されます (コマンドと Java コードから確認パスワードを削除して確認しましたが、動作します)、確認パスワードがコマンドに渡されず、コマンドは確認パスワードを無期限に待ちます。誰か提案があれば教えてください。
try
{
runtime = Runtime.getRuntime();
process = runtime.exec("<<my command>>"");
String inLine = "";
String errLine = "";
StringBuffer inBuffer = new StringBuffer();
StringBuffer errBuffer = new StringBuffer();
PrintWriter pw = new PrintWriter(process.getOutputStream());
pw.print("<<password>>"+"\n");
pw.print("<<verify password>>"+"\n");
pw.flush();
BufferedReader stdin = new BufferedReader(new InputStreamReader(
process.getInputStream()));
BufferedReader stderr = new BufferedReader(new InputStreamReader(
process.getErrorStream()));
while ((inLine = stdin.readLine()) != null) {
inBuffer = inBuffer.append(inLine + "\n");
}
stdin.close();
System.out.println("Output messages of cmd " + inBuffer.toString());
while ((errLine = stderr.readLine()) != null) {
errBuffer = errBuffer.append(errLine + "\n");
}
stderr.close();
System.out.println("Error messages of cmd " + errBuffer.toString());
process.waitFor();
int exitCode = process.exitValue();
System.out.println("cmd " + " exited with code " + exitCode);
}