Spring Boot打包出来的jar包:
springbootdemo-0.0.1-SNAPSHOT.jar是spring-boot-maven-plugin生成的jar包。包含了应用的第三方依赖,spring boot相关的类,存在嵌套的jar包,称之为executable jar或fat jar。springbootdemo-0.0.1-SNAPSHOT.jar.original是默认的maven-jar-plugin生成的包,仅包含编译用的本地资源。
MANIFEST.MF文件文件内容(下面源码分析中getMainClass()实际就是获取了该文件中的Start-Class属性的属性值)
当我们执行java -jar命令时他会找到/META-INF/MANIFEST.MF文件中的Main-Class属性,从而找到应用程序执行入口类org.springframework.boot.loader.JarLauncher,该类中定义了main()从而我们找到了程序入口。在该方法中构建了JarLauncher并调用了launch()方法。
领取专属 10元无门槛券
私享最新 技术干货