一. jar 包

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

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

简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

二. war 包

  war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。

  war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。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项目,里面是项目的所有东西。

三. 两者区别

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

  如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,这时可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。

  一个WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。

  要注意的是,虽然WAR文件和JAR文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,WAR文件和JAR文件是有根本区别的。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

  那么什么时候应该使用WAR文件呢?在开发阶段不适合使用WAR文件,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立WAR文件将是一件浪费时间的事情。在产品发布阶段,使用WAR文件是比较合适的,因为在这个时候,几乎不需要再做什么改动了。

  在开发阶段,我们通常将Servlet源文件放到Web应用程序目录的src子目录下,以便和Web资源文件区分。在建立WAR文件时,只需要将src目录从Web应用程序目录中移走,就可以打包了。

  部署war包到Tomcat

1). 我这里工作中一般是开发打war包给测试,比如说现在测试拿到一个war包,名字叫test.war。

2). 打开Tomcat的安装路径 ,假设是“D:\Tomcat\apache-tomcat-7.0.68”,然后进入到 webapps文件夹中,把 test.war放到 webapps文件夹。

3). 启动Tomcat。

如果不需要更改配置文件:到这一步就可以了。

在浏览器输入“http:localhost:tomcat_port/test即可打开test项目的 index.jsp页面(port是自己的端口号)。如果test项目没有index.jsp页面,那就需要打开其他相应的页面。

如果需要更改配置文件:

4). 关闭 Tomcat。

5). 删除 test.war文件(如果在tomcat启动的状态下删去war包,解压好的文件夹也会被一并删除,所以需要在解压后停止tomcat, 然后删掉war包,这时再启动。这时项目文件夹就会被认为不是war解压而来。)。

6). 由于刚刚启动过Tomcat,Tomcat会自动解压缩test.war为 test文件夹。所以我们在webapps下面可以看到test文件夹。打开test文件夹更改配置文件即可。

7). 更新完配置之后,启动Tomcat。

8). 浏览器打开即可。

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

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

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

  2. Java项目打war包的方法

    最近好忙好忙,整理下心情给大家分享下自己在工作中遇到的一点小技巧,希望给遇到同样麻烦的同学一点帮助. 我们知道Java项目打war包可以在Eclipse和MyEclipse工具中自动打包,就是右键,然 ...

  3. eclipse打war包_jar包和war包的区别

    一.概念 jar包:JAR包是类的归档文件,JAR 文件格式以流行的 ZIP 文件格式为基础.与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库.组件和插件程序,并可被像 ...

  4. 使用jar打war包或解压war包

    今天别的部门的同事传来一个包,说叫解压替换一个Java项目下的目录即可 我拿到了手,一看NM这怎么解压,不是通常的那种压缩格式,遂立马百度,来弥补一个C++程序员受伤的心灵 使用jar打war包或解压 ...

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

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

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

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

  7. 打包部署时jar包和war包的区别

    springboot打成jar包时,pom文件里有一些tomcat的jar包引用,就是spring boot内置的tomcat, 打war包时,需要注释掉这些tomcat的引用 maven的三种项目打 ...

  8. java war包怎么运行_springboot web项目打jar或者war包并运行的实现

    (一)springboot web项目打jar包 1.打包 两种打包方式 maven命令打包 切换目录到工程根下,pom.xml所在位置,运行maven的打包命令 mvn clean package ...

  9. java如何将war包打成ear包_关于war包 jar包 ear包 及打包方法

    关于war包 jar包 ear包 及打包方法 war包:是做好一个web应用后,通常是网站打成包部署到容器中 jar包:通常是开发的时候要引用的通用类,打成包便于存放管理. ear包:企业级应用 通常 ...

最新文章

  1. MVC 3 登录、注销
  2. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 三 )
  3. poj 2817 WordStack (状态dp)
  4. 在StackBlitz上setup SAP Spartacus
  5. Windows 自启动总结《转》
  6. 2018年“百家姓”出炉,新生儿爆款名字是这些......
  7. 队列Java舞会_周末舞会(队列)
  8. 虚拟机中Linux克隆后相关配置-1
  9. spark mlib入门
  10. CPU .......TensorFlow binary was not compiled to use: AVX AVX2
  11. 互联网2018校招时间_供参考
  12. 打开dbf时自动打开fxp_打开游戏时提示缺少必要组件打不开怎么办?
  13. java反射的优缺点_浅谈Java反射的优缺点
  14. canvas-缤纷小球
  15. 机动车尾气污染物分析仪的原理
  16. 中国剩余定理(CRT)
  17. 百度网盘直链下载助手(MacOSChrome)
  18. VB.NET 使用 OleDb 操作 Access 数据库(来自 MSDN)
  19. 林纳斯·托瓦兹(Linus Torvalds)为什么被称作大神?
  20. 联通服务器调试信号,云服务器 联通网络设置方法

热门文章

  1. Kubernetes — 网络流量模型
  2. VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
  3. python使用笔记:pyautogui自动化控制鼠标和键盘
  4. linux的platform驱动
  5. Keil恢复默认界面
  6. Linux驱动程序中THIS_MODULE 的定义
  7. jQuery中attr和prop方法的区别
  8. 技术负责人的三种角色
  9. HTML+JS弹出可移动DIV遮罩层
  10. 深信服上网行为-域新组建模式单点登录不成功排错