我想从 Java 重新启动 Apache。我尝试使用以下代码重新启动它。
Runtime.getRuntime().exec("cmd.exe /c \"C:\\Program Files\\Apache\\Apache22\\bin\\httpd.exe\" -k restart -n \"localServer\"");
这似乎在 Java 程序内部不起作用(如果我将它放入命令行,它确实起作用)。我知道我最终会遇到管理员问题,但现在我只想让它重新启动服务器。任何人都可以给我任何指示吗?
我设法弄清楚了这一点,并使其与 Windows 7 和 UAC 管理器一起工作。
Process stop = Runtime.getRuntime().exec("\"C:\\Program Files\\Apache\\Apache22\\bin\\elevate.exe\" -c \"C:\\Program Files\\Apache\\Apache22\\bin\\httpd.exe\" -k stop -n \"localServer\"");
然后有一秒钟的时间再次启动它。第一个调用是提升这是一个 .exe,我下载了该提升的特权,因此我能够实际运行命令,然后第二个调用停止。