Tomcat启动和关闭的核心包是
%Tomcat Directory%/bin/Bootstrap.jar
启动:创建start-up.bat文件,内容如下:
java -jar Bootstrap.jar start
关闭:创建shup-down.bat文件,内容如下:
java -jar Bootstrap.jar stop
其中Bootstrap.jar中的org.apache.catalina.startup.Bootstrap类的main方法如下:
public
static
void main(String[] args)
{
try
{
new ObjectName( "test:foo=bar");
} catch (Throwable t) {
System.out.println( "This release of Apache Tomcat was packaged to run on J2SE 5.0 \nor later. It can be run on earlier JVMs by downloading and \ninstalling a compatibility package from the Apache Tomcat \nbinary download page.");
try
{
Thread.sleep(5000L);
} catch (Exception ex) {
}
return;
}
if (daemon == null) {
daemon = new Bootstrap();
try {
daemon.init();
} catch (Throwable t) {
t.printStackTrace();
return;
}
}
try
{
String command = "start"; //默认参数为启动
if (args.length > 0) {
command = args[(args.length - 1)];
}
if (command.equals( "startd")) {
args[0] = "start"; //启动的方法
daemon.load(args);
daemon.start();
} else if (command.equals( "stopd")) {
args[0] = "stop"; //关闭的方法
daemon.stop();
} else if (command.equals( "start")) {
daemon.setAwait( true); //启动的方法
daemon.load(args);
daemon.start();
} else if (command.equals( "stop")) {
daemon.stopServer(args); //关闭的方法
} else {
log.warn( "Bootstrap: command \"" + command + "\" does not exist."); //错误命令加入日志
}
} catch (Throwable command) {
t.printStackTrace();
}
}
{
try
{
new ObjectName( "test:foo=bar");
} catch (Throwable t) {
System.out.println( "This release of Apache Tomcat was packaged to run on J2SE 5.0 \nor later. It can be run on earlier JVMs by downloading and \ninstalling a compatibility package from the Apache Tomcat \nbinary download page.");
try
{
Thread.sleep(5000L);
} catch (Exception ex) {
}
return;
}
if (daemon == null) {
daemon = new Bootstrap();
try {
daemon.init();
} catch (Throwable t) {
t.printStackTrace();
return;
}
}
try
{
String command = "start"; //默认参数为启动
if (args.length > 0) {
command = args[(args.length - 1)];
}
if (command.equals( "startd")) {
args[0] = "start"; //启动的方法
daemon.load(args);
daemon.start();
} else if (command.equals( "stopd")) {
args[0] = "stop"; //关闭的方法
daemon.stop();
} else if (command.equals( "start")) {
daemon.setAwait( true); //启动的方法
daemon.load(args);
daemon.start();
} else if (command.equals( "stop")) {
daemon.stopServer(args); //关闭的方法
} else {
log.warn( "Bootstrap: command \"" + command + "\" does not exist."); //错误命令加入日志
}
} catch (Throwable command) {
t.printStackTrace();
}
}
本文转自 sundunjam 51CTO博客,原文链接:http://blog.51cto.com/sunspot/352083,如需转载请自行联系原作者