0
我想在我的java程序中执行这个命令并检查它是否成功执行。用java执行ntpdate并得到输出值
sudo ntpdate -u someserver.com
我创建一个bash用命令
#!/bin/sh
sudo ntpdate -u omeserver.com
,并用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
没有台词,我怎么能检查如果命令正确执行?
如果我添加例如Echo在bash的文件,我得到它的stdInput结束时更新,但它仍然不意味着时间更新
脚本是否在终端中成功执行? 'sudo'是否提示输入密码? – starf
是的,它执行成功,没有不需要密码 – lisa
你有什么关于stderr吗?尝试将'p.getInputStream()'改为'p.getErrorStream()'。我尝试过类似的脚本,无法重现您的问题。 – starf