为什么SpringBoot的jar可以直接运行?

1.SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。

2.Spring Boot应用打包之后,生成一个Fat jar, jar包中包含jar),包含了应用依赖的jar包和Spring Boot loader相关的类。

3. java -jar会去找jar中的manifest文件,在那里面找到真正的启动类(main-class):

4. Fat jar的启动Main函数是JarLauncher,它负责创建一个LaunchedURLClassLoader来加载bootlib下面的jar,井以一个新线程启动应用

的Main函数(找到清单文件中的start-class)。

猜你喜欢

转载自blog.csdn.net/tekin_cn/article/details/136752054