我有服务器和客户端,客户端使用wrapper在后台运行。服务器使用以下方式向客户端发送命令,客户SocketChannels
端以这种方式运行命令:
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(command);
当我像往常一样从控制台运行客户端时,这很有效。但是当我将它作为 Windows 服务运行时,一些命令不起作用。例如:
runtime.exec("shutdown -s -t 300");// works perfectly
runtime.exec("shutdown -a"); // works perfectly
runtime.exec("shutdown -l"); // works only when client started from console
// note that these commands will shutdown your computer or log off
第三个命令根本不做任何事情,然后程序正常工作。我以随机顺序单独运行命令,没有区别。我正在使用 Windows。
那么我做错了什么?
此外,我无法从服务“notepad.exe”(或另一个具有完整路径的 .exe)运行。我想知道这样做的正确方法是什么(再次,从控制台它可以工作)。