## 多个class文件可以以一个jar包的方式组织,在清单文件中指明入口main函数等信息,就可以以java -jar 方式启动.但是对于依赖的jar包java没有一个标准来把他们打包进同一个jar包中.除了在环境变量中查找他们或者在清单文件中指明这些依赖jar包的位置.
没有标准的东西就会有很多中不同的做法和实现.比如说有maven插件可以把所有的jar包都以class文件的方式组织,相当于把所有的jar都解压然后按照class文件的package信息重新打在一个jar中.还有一种就像springboot这种自定义类加载器,加载在一个jar中的其他jar.
jar包结构
war包结构
可执行jar
springboot 可执行jar
参考