2011-03-10 68 views

回答

5

您可以使用Java

String command = "c:\program files\tomcat\bin\startup.bat";//for linux use .sh 
Process child = Runtime.getRuntime().exec(command); 
+0

谢谢jigar它为我工作。我的服务器再次启动。 – Chitresh 2011-03-16 05:29:12

+0

欢迎您:) – 2011-03-16 05:42:59

+0

我有同样的问题,上述解决方案不适合我。我遵循这个解决方案,但它停止了异常,但仍然不启动tomcat:http://www.servlets.com/archive/servlet/ReadMsg?msgId=150354&listName=tomcat-user – dhaval 2011-06-13 11:54:05

10

您需要用参数"start"执行的org.apache.catalina.startup.Bootstrapmain方法执行本机命令。

您还需要以下几件事:

  • 有在classpath tomcat/bin/bootstrap.jar;
  • -Dcatalina.base指向$TOMCAT_HOME
  • -Dcatalina.home指向$TOMCAT_HOME
  • -Djava.io.tmpdir指向到一个临时目录(一般$TOMCAT_HOME/temp

我也有-noverify参数集,不知道它始终是必要的。

p.s.如果你可以开始接受答案,你的当前比率是0/28也是很好的。

+0

'-noverify'在类加载期间禁用检查。当您以巨大的网络应用程序为代价时,它会使Tomcat的启动速度更快。当运行tomcat作为windows服务时, – 2015-12-03 08:43:00

15

可以将shutdown命令发送到关闭端口,这两个端口都可以在Tomcat的server.xml文件的根元素中配置。

通过以下步骤:

步骤1

配置CATALINA_HOME/CONF/server.xml中如下:

<Server port="8005" shutdown="myShutDownCommand"> 

属性端口是可选的。如果省略,则使用默认值8005。

shutdown属性的值可以是任何值。这不应该被别人知道。

步骤2

制作一个Java程序发送关机命令,myShutDownCommand,使用的java.net.Socket类的关闭端口,8005

try { 
    Socket socket = new Socket("localhost", 8005); 
    if (socket.isConnected()) { 
     PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
     pw.println("myShutDownCommand");//send shut down command 
     pw.close(); 
     socket.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

工作 - 谢谢! – mounds 2013-07-17 08:17:24

+0

这只会关闭服务器。以同样的方式,是否有可能重新启动服务器? – 2016-03-09 11:37:22

+0

我在Eclipse上运行服务器,并没有阻止tomcat。 – 2016-03-31 00:54:05