前言:
我们上线项目可能经常听到jar包和war包,但是他两的区别可能不太理解,这里就把我自己对jar包和war包的区别讲解下。
正文:
从概念上理解:
jar包:JAR包是类的归档文件,JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。更详细的解释可以看下百度百科的解释(传送门:https://baike.baidu.com/item/JAR/919533?fr=aladdin)
war包:war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
从解压后的目录结构看:
jar包:
①jar包里的com里放的就是class文件,②配置文件,但是没有静态资源的文件,③大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。
war包:
而war包里的①WEB-INF里放的class文件和配置文件,②META-INF和jar包作用一样③war包里还包含静态资源的文件
总结起来就是有两点不同:
1.war包和项目的文件结构保持一致,jar包则不一样。
2.jar包里没有静态资源的文件(index.jsp)。
从部署项目上看:
部署普通的spring项目用war包就可以,部署springboot项目用jar包就可以,因为springboot内置tomcat。
总结:
大家有不同见解欢迎来碰撞,喜欢就点个赞,我是要成为斗帝的男人。