Я хочу выполнить эту команду в своей программе java и проверить, успешно ли она выполнена.Выполнить ntpdate с помощью java и получить значение вывода
sudo ntpdate -u someserver.com
создать Баш с командой
#!/bin/sh
sudo ntpdate -u omeserver.com
и выполнить его с Явы
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
, как я могу проверить если команда была правильно выполнена?
Если добавить к примеру Echo обновляется в конце файла Баш я получаю его в stdInput, но он все еще не означает, что время были обновлены
Выполняется ли сценарий успешно в терминале? Вызывает ли пароль 'sudo' пароль? – starf
да, он успешно выполнен и нет пароля – lisa
У вас есть что-нибудь на stderr? Попробуйте изменить 'p.getInputStream()' на 'p.getErrorStream()'. Я попробовал аналогичный скрипт и не могу воспроизвести вашу проблему. – starf