私のJavaプログラム内でこのコマンドを実行し、正常に実行されたかどうかを確認します。javaでntpdateを実行し、出力値を取得
sudo ntpdate -u someserver.com
は、私はどのように確認することができ、stdInput
には行が存在しない、コマンド
#!/bin/sh
sudo ntpdate -u omeserver.com
ではbashを作成し、Java
ProcessBuilder pb = new ProcessBuilder("/updateTime");
Process p = pb.start();
p.waitFor();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println(stdInput.readLine());
でそれを実行しかし、私は何も出力を取得していませんコマンドが正しく実行されたかどうか
私はstdInputでそれを得るbashのファイルの最後に更新たとえばエコーのために追加しますが、それはまだ時間が更新されたことを意味するものではありません場合は、単にあなたがおそらくより簡単で取得したい
スクリプトは端末で正常に実行されますか? 'sudo'はパスワードの入力を促しますか? – starf
はい正常に実行され、パスワードは必要ありません – lisa
stderrには何かがありますか? 'p.getInputStream()'を 'p.getErrorStream()'に変更してみてください。私は似たようなスクリプトを試しましたが、あなたの問題を再現することはできません。 – starf