jar包和war包的区别

1. jar包

JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为J2EE应用程序创建的jar文件是EAR文件(企业jar文件)。JavaSE程序可以打包成Jar包(J其实可以理解为Java)。

JAR 文件格式以流行的ZIP文件格式为基础。与ZIP文件不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可以被 像编译器和JVM这样的工具直接使用。在JAR中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的JAR。

简单来说,Java编译好之后生成class文件,但如果直接发布这些class文件的话会很不方便,所以就把许多的class文件打包成一个jar,jar中除了class文件还可以包括一些资源和配置文件,通常一个jar包就是一个java程序或者一个java库。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

2. war包

war(Web application Archive),与jar基本相同**,它通常表示这是一个Java的Web应用程序的包**,是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。tomcat这种Servlet容器会认出war包并自动部署。

war包中的文件按照一定目录结构来组织。其根目录下包含有html 和jsp 文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes 目录下则包含编译好的servlet类和jsp,或者servlet 所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。

简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译承德class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等。一个war包可以理解为一个web项目,里面是项目的所有东西。

3. Ear 文件

Ear文件(扩展名为 Ear,Enterprise Application Archive)包含全部企业应用程序。在这种情况下,一个企业应用程序被定义为多个jar 文件、资源、类和Web应用程序的集合。

4. 区别

WAR文件代表了一个Web应用程序,JAR是类的归档文件。

jar时java普通项目打包,通常是开发时要引用通用类,打成jar包便于存放管理。当你使用某些功能时就需要这些jar包的支持,需要导入jar包。war是java web 项目打包,web网站完成后,打成war包部署到服务器,目的是为了节省资源,提供效率。

JAR WAR EAR
全称 Java Archive file Web Archive file Enterprise Archive file
包含内容 class、properties文件,是文件封装的最小单元;包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等 Servlet、Jsp页面、Jsp标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等 除了包含JAR、WAR以外,还包括EJB组件
部署文件 application-client.xml web.xml application.xml
容器 应用服务器(application servers) 小型服务程序容器(servlet containers) EJB容器(EJB containers)
级别

jar包和war包的区别相关推荐

  1. java jar包和war包_java中jar包和war包之间有什么区别

    原标题:java中jar包和war包之间有什么区别 jar包 简单地说,JAR(Java Archive)是一种包文件格式.JAR文件具有.jar扩展名,可以包含库.资源和元数据文件. 本质上,它是一 ...

  2. 花5分钟过一遍jar包和war包的区别,以后都不会再迷茫

    做Java开发,jar包和war包接触的都比较多. 今天,小编把两者的联系好好梳理下,花5分钟过一遍以后不再迷茫,你值得拥有: 一.概念 1. jar包:jar包是类的归档文件,与平台无关的文件格式, ...

  3. jar包和war包区别及理解

    在开发阶段不适合使用war包,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立war包将是一件浪费时间的事情.在产品发布阶段,使用war文件 ...

  4. 【运维面试】面试官: jar包和war包有什么区别?

    前言 做java开发的jar包和war包接触的比较多,做运维的也会接触到,运维的这个问题一般是问: 开发人员给你的包是jar包还是war包. 因为培训机构的小伙伴没有接触过java,所以分不清jar和 ...

  5. springboot打包为jar包和war包的区别

    为什么springboot更支持打包为jar包 springboot打包为jar包和war包的区别 在springboot项目中使用的是springboot内嵌的tomcat容器,而war包是运行在外 ...

  6. IDEA中打jar包和war包以及jar包和war包的区别及理解

    首先我们先理解一下什么是jar包和war包! jar包:jar是类的归档文件! JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为 J ...

  7. jar 包与 war 包区别

    参考: https://www.jianshu.com/p/3b5c45e8e5bd https://www.cnblogs.com/banml/p/11767305.html https://blo ...

  8. jar包与war包部署的区别及jar包部署的一个路径访问问题

    1.jar包与war包部署的区别 什么是jar包? jar包是类的归档文件,jar文件格式以流行的ZIP文件格式作为基础,和ZIP文件不一样的是,JAR文件不仅仅用来进行压缩和发布,还用来部署和封装库 ...

  9. java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别

    原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...

  10. jar包、war包和ear包的介绍与区别

    个人理解: 在学习maven的过程中接触到了jar包和war包.之前在写小项目的时候真的遇到过war包,当时为了找到jar包,把war包的后缀名改成了.rar的压缩文件,在里面提取出来jar包来用.其 ...

最新文章

  1. 【错误记录】FFmpeg 推流报错 ( FLV does not support sample rate 8000, choose from (44100, 22050, 11025) )
  2. MM中如何更改物料的评估类
  3. python colorlist_Python list的常用操作
  4. 程序员编程艺术第十一章:最长公共子序列(LCS)问题
  5. android -- 蓝牙 bluetooth (二) 打开蓝牙
  6. 使用Aptana搭建Python开发环境
  7. 排序算法 -- 待增加
  8. 布同:vim插件开发实例和讲解
  9. 商业智能让营销更精确
  10. 华为鸿蒙os升级怎么升,华为鸿蒙OS2.0系统怎么升级
  11. 基环树DP(bzoj 1040: [ZJOI2008]骑士)
  12. c#明华rf读卡器_C#调用第三方API接口-案例明华读卡器
  13. VS Code C++ 插件推荐安装
  14. 数字孪生城市的2个技术关键点 优锘ThingJS
  15. zotero文献管理器及其使用姿势(不定时更新)
  16. 【洛谷】P1894 完美的牛栏
  17. 有一天,你不上班后,打算干什么?
  18. 转 八部众---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十三)
  19. 2021年山东省安全员C证模拟考试及山东省安全员C证作业模拟考试
  20. v-chart折线图数据改造

热门文章

  1. 数论基础及其代码实现
  2. 单片机怎么通过按键控制计时器的开始和停止_单片机新手入门系列视频集锦
  3. 802.11无线wifi协议学习(二)
  4. java后台实现弹窗提示_java后台代码弹窗
  5. Linux创翼拨号上网,创翼客户端下载(网络拨号工具) v4.11.4.731 最新版_数码资源网...
  6. LwM2M(轻量级M2M)协议
  7. 2022新版小额借贷系统源码+新增APP下载页面/内附教程
  8. 幼儿园编程机器人课程介绍
  9. win7万能声卡驱动_黑苹果AppleALC声卡驱动教程详解
  10. 30款免费3D建模软件,总有一款适合你!