一、启动方法main
1. main(String[] args)运行原理简介
打开Main.java文件,可以看到该应用的启动方法。通过主线程执行main(String[] args)方法启动应用,然而mian(String[] args)方法只调用了launch(args)方法,该方法的目的就是调用整个应用配置以及资源。
public static void main(String[] args) {
launch(args);
}
接下来我们简单分析一下launch(args)的启动过程,以下代码只是该方法的部分截图,只包含核心代码,校验类代码暂时忽略。可以清晰的看出,通过当前线程获取类加载器Thread.currentThread().getContextClassLoader(),然后通过Class.forName()通过映射加载实例化当前类。最后通过LauncherImpl.launchApplication(appClass, args)启动执行该类中的方法。
try {
Class theClass = Class.forName(callingClassName, false,
Thread.currentThread().getContextClassLoader());
if (Application.class.