通过托管在同一Tomcat中的servlet重新启动Tomcat服务

通过托管在同一Tomcat中的servlet重新启动Tomcat服务,tomcat,windows-services,servlets,Tomcat,Windows Services,Servlets,我想在WindowsXP上重新启动tomcat服务,我创建了一个调用批处理文件的servlet public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Process p = Runtime.getRuntime().exec("c:\restart_tomcat.bat"); } 在我的restart_tomcat

我想在WindowsXP上重新启动tomcat服务,我创建了一个调用批处理文件的servlet

public void doGet (HttpServletRequest req, HttpServletResponse res) 
 throws ServletException, IOException  {

      Process p = Runtime.getRuntime().exec("c:\restart_tomcat.bat");
 }
在我的restart_tomcat.bat中添加了以下两行

请求servlet URL会停止tomcat服务器,但它不会启动。但是,当我运行批处理文件restart_tomcat.bat时,工作正常

Runtime.getRuntime().exec("cmd.exe /c start c:\restart_tomcat.bat");

当VM退出时,JVM启动的进程(例如restart_tomcat.bat)也可能被终止,因此net start永远不会执行。不幸的是,Tomcat使用的是不支持JVM重启的。或者我不知道怎么做

快速破解:将服务恢复模式设置为自动重启

从长远来看,还有很多其他支持自重启的系统

Runtime.getRuntime().exec("cmd.exe /c start c:\restart_tomcat.bat");