SpringBoot打包后的jar包,main class并非在项目中使用@SpringBootApplication标记的主类,而是org.springframework.boot.loader.JarLauncher。
生成的jar包里MANIFEST.MF内容类似如下:
Manifest-Version: 1.0
Start-Class: cn.edu.tju.Start
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.1.6.RELEASE
Main-Class: org.springframework.boot.loader.JarLauncher
Spring Boot 通过自定义的类加载器class loader来加载BOOT-INF/classes下的类和BOOT-INF/lib下的jar文件