1

我正在开发一个具有更改系统日期和时间功能的 GWT 应用程序。为了执行 linux date 命令(例如date 052810242012:),执行以下行,但之后 tomcat 冻结:

Runtime.getRuntime().exec(this.command);  // where this.command is the date command 

我已经意识到,即使应用程序启动并运行并且我在终端中更改系统日期和时间,它仍然会冻结应用程序。

有人可以解释为什么吗?

4

1 回答 1

1

首先,我认为你要执行的命令是一个root权限的命令,所以你必须确保你的应用程序的所有者是sudoer,并且它有权执行该命令。

其次,Runtime.getRuntime().exec()提供JAVA执行系统命令的接口,但是直接在终端上执行是有区别的,因为它自己处理输入和输出,不会像终端一样打印在屏幕上,所以你必须处理结果JVM中的命令或将命令写入可执行的shell脚本,没有输出并调用 Runtime.getRuntime().exec(sudo","./a.sh"};

最后,您在终端中更改日期和时间时提到的问题导致冻结应用程序,我以前从未见过这种情况。你能详细解释一下吗?</p>

于 2012-09-23T15:40:39.707 回答