我正在开发一个GWT应用程序,它具有更改系统日期和时间的功能。为了执行linux date命令(例如:date 052810242012
),执行以下行,但之后tomcat冻结:
Runtime.getRuntime().exec(this.command); // where this.command is the date command
我已经意识到即使应用程序启动并运行并且我在终端中更改了系统日期和时间,它仍会冻结应用程序。
有人可以解释原因吗?
答案 0 :(得分:1)
首先,我认为您要执行的命令是一个只有root的命令,因此您必须确保应用程序的所有者是一个sudoer,并且它有权执行该命令。
其次,Runtime.getRuntime().exec()
提供了一个为JAVA执行系统命令的界面,但直接在temina上执行是因为它处理输入和输出本身,并且不会像teminal那样在屏幕上打印您必须在JVM中处理命令的结果,或者将命令写入可执行的shell脚本而不输出和调用
Runtime.getRuntime().exec(sudo","./a.sh"};
最后,当您更改终端中的日期和时间时提到的问题导致冻结应用程序,我以前从未见过这个问题。你能解释一下它的细节吗?