使用java代码更改ubuntu系统时间

使用java代码更改ubuntu系统时间,java,ubuntu,time,system,Java,Ubuntu,Time,System,我编写了一个java代码来更改系统时间,但它不起作用。java代码已编译并成功运行。请有人指出这里出了什么问题 我的java代码是: Process process = Runtime.getRuntime().exec("/home/priyatam/timesetter.sh"); process.waitFor(); DataInputStream d = new DataInputStream(process.getInputStream()); System.out.println(d

我编写了一个java代码来更改系统时间,但它不起作用。java代码已编译并成功运行。请有人指出这里出了什么问题

我的java代码是:

Process process = Runtime.getRuntime().exec("/home/priyatam/timesetter.sh");
process.waitFor();
DataInputStream d = new DataInputStream(process.getInputStream());
System.out.println(d.read());   //It gives the output as number of bytes as 83 
sh文件的内容如下:

#!/bin/sh
日期--set=“2014-2-20上午11:58”

“date--set=“2014-2-20 11:58 AM”命令在终端中正常工作。 此外,当从终端执行时,这个sh文件可以很好地工作,但它不能通过java代码工作


任何人有任何想法,请分享。

我认为你应该这样做

String[] cmd = { "/bin/sh","/home/priyatam/timesetter.sh" };
Process p = Runtime.getRuntime.exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));

String line=null;

while((line=input.readLine()) != null) {

   log.warn(line);
}

int exitVal = process.waitFor();

shell脚本本身不是可执行文件。您需要调用一个shell并告诉它执行脚本。您得到的异常是什么?没有异常。但是语句系统.out.println(d.read());现在是否返回-1您是否检查日期是否已更改?我更新cod以反映整个流程,您现在可以检查吗?此代码正在打印更新的时间,但未反映在系统中。你有没有检查你的系统时间是否改变了?我需要对我的sh文件进行任何更改吗?