Bootstrap.main

原创 2015年07月09日 17:06:25

代码

public static void main(String args[]) {

    if (daemon == null) {
        // Don't set daemon until init() has completed
        Bootstrap bootstrap = new Bootstrap();
        try {
            bootstrap.init();
        } catch (Throwable t) {
            handleThrowable(t);
            t.printStackTrace();
            return;
        }
        daemon = bootstrap;
    } else {
        // When running as a service the call to stop will be on a new
        // thread so make sure the correct class loader is used to prevent
        // a range of class not found exceptions.
        Thread.currentThread().setContextClassLoader(daemon.catalinaLoader);
    }

    try {
        String command = "start";
        if (args.length > 0) {
            command = args[args.length - 1];
        }

        if (command.equals("startd")) {
            args[args.length - 1] = "start";
            daemon.load(args);
            daemon.start();
        } else if (command.equals("stopd")) {
            args[args.length - 1] = "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 if (command.equals("configtest")) {
            daemon.load(args);
            if (null==daemon.getServer()) {
                System.exit(1);
            }
            System.exit(0);
        } else {
            log.warn("Bootstrap: command \"" + command + "\" does not exist.");
        }
    } catch (Throwable t) {
        // Unwrap the Exception for clearer error reporting
        if (t instanceof InvocationTargetException &&
                t.getCause() != null) {
            t = t.getCause();
        }
        handleThrowable(t);
        t.printStackTrace();
        System.exit(1);
    }

}

解析

bootstrap.init(); //初始化
daemon.setAwait(true);  //是否调用Server.await
daemon.load(args);      //加载
daemon.start();         //启动

相关文章推荐

BootStrap main 方法都做了什么?

Code public static void main(String args[]) { if (daemon == null) { Bootstrap...

MDK main函数运行前的分析

  • 2014年10月24日 08:27
  • 178KB
  • 下载

从上电复位到main函数

学了有半年的嵌入式,感觉无所成,总觉得学的不深,理解不透,而且很容易就忘了,于是也学人写写笔记,看看能否加深理解。 为了了解STM32从开机开始到C的main函数之前做了什么初始化的工作,分析编译出的...

main函数源码

  • 2015年08月06日 16:00
  • 693B
  • 下载

C++中先于main执行

在C++中实现先于main执行: #include "stdafx.h" #include #include #include #include #include using namesp...

main_directivity_analysis

  • 2011年03月09日 22:17
  • 72KB
  • 下载

无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用   http://blog.sina.com.cn/s/blog_6e6c5f230100p92p.h...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Bootstrap.main
举报原因:
原因补充:

(最多只允许输入30个字)