SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:打包完生成的executable-jar-1.0-SNAPSHOT.jar内部的结构如下:然后可以直接执行jar包就能启动程序了:java -jar executable-jar-1.0-SNAPSHOT.jar打包出来fat jar内部有4种文件类型:。那么JarLauncher这个类是的作用是什么的?ExplodedArchive是文件目录的抽象JarFile:对jar包的封装,每个JarFileArchive都会对应一个JarFile。如果Entry是个jar,会解析成JarFileArchive。构造JarFileArchive的过程中还会构造很多东西,比如JarFile,Entry …它的Main-Class使用JarLauncher,如果是war包,使用WarLauncher执行。这些Launcher内部都会另起一个线程启动自定义的SpringApplication类。这些特性通过spring-boot-maven-plugin插件打包完成。

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

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

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

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

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

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

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