首先要知道的是我们经常使用的命令【java -jar *.jar】是怎么运行的?
当执行这个命令的时候,它会解析jar包下的META-INF文件夹下的MANIFEST.MF文件,下面一步步解析查看执行流程。
1、我们先看一个普通jar包的内部,以及MANIFEST.MF文件
2、当我们对这个普通jar包进行执行的时候就会报出如下错误
3、既然没有主清单,那么我们就在文件里面添加一个主清单。
4、执行添加主清单的jar包
5、既然没有主类我们就添加一个主类(需要转成class文件),并放到jar包里面
6、继续执行jar包
至此,一个普通的jar包也能够成功执行。既然知道了普通jar包经过改造也能执行,由此我们可以想象为什么springboot打的包可以直接运行,因为springboot打的包MANIFEST.MF文件里面已经写好的主清单要执行的代码。
下面展示一张MANIFEST.MF文件的数据配置图片: