0

ランタイムを使用して、パスワードを 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);


    }
4

2 に答える 2