打包方式-jar和war的区别

1、jar包

JAR包是类的归档文件 ,与平台无关的文件格式,其实jar包就是java的类进行编译生成的class文件进行打包的压缩包。

JAR以ZIP文件格式为基础,与ZIP不同的是,JAR不仅用于压缩和发布,还用于部署和封装库、组件和插件程序,可以被编译器和JVM直接使用。可以将这些jar包引入到自己的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

2、war包

war包是JavaWeb程序打的包 ,是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。

以tomcat为例,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。

3、区别

3.1 从概念上理解
  • JAR包是类的归档文件
  • war包是JavaWeb程序打的包。
3.2 从解压后的目录结构看
  • jar包:
  • ①jar包里的com里放的就是class文件
    ②配置文件,但是没有静态资源的文件
    ③大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息
  • war包
  • ①WEB-INF里放的class文件和配置文件
    ②META-INF和jar包作用一样
    ③war包里还包含静态资源的文件
3.3 总结
  1. war包和项目的文件结构保持一致,jar包则不一样
  2. jar包里没有静态资源的文件(index.jsp)
  3. 一个web应用程序的目录和文件很多,想要将这个web应用程序部署到另一台机器上就很麻烦,这时可以将web应用程序打包成WAR文件,利用这个文件可以把servlet类文件和相关的资源集中在一起进行发布。这个过程中,web应用程序就不是按照目录层次结构惊醒部署的,而是把WAR文件作为部署单元来使用。一个WAR文件就是一个web应用程序,建立WAR文件就是把整个web应用程序压缩起来,指定一个.war扩展名。
  4. 虽然WAR文件和JAR文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,WAR文件和JAR文件是有根本区别的。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件
  5. 部署普通的spring项目用war包就可以,部署springboot项目用jar包就可以,因为springboot内置tomcat
相关推荐
西瓜本瓜@2 小时前
在Android中如何使用Protobuf上传协议
android·java·开发语言·git·学习·android-studio
言之。2 小时前
别学了,打会王者吧
java·python·mysql·容器·spark·php·html5
机智的人猿泰山2 小时前
java kafka
java·开发语言·kafka
Algorithm15763 小时前
谈谈接口和抽象类有什么区别?
java·开发语言
细心的莽夫3 小时前
SpringCloud 微服务复习笔记
java·spring boot·笔记·后端·spring·spring cloud·微服务
264玫瑰资源库5 小时前
问道数码兽 怀旧剧情回合手游源码搭建教程(反查重优化版)
java·开发语言·前端·游戏
pwzs5 小时前
Java 中 String 转 Integer 的方法与底层原理详解
java·后端·基础
东阳马生架构5 小时前
Nacos简介—2.Nacos的原理简介
java
普if加的帕5 小时前
java Springboot使用扣子Coze实现实时音频对话智能客服
java·开发语言·人工智能·spring boot·实时音视频·智能客服
爱喝一杯白开水5 小时前
SpringMVC从入门到上手-全面讲解SpringMVC的使用.
java·spring·springmvc