war包 和 jar包

1. jar包

jar包全程JAVA Archive,中文名叫java归档文件,这是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。

(jar包就是一种压缩文件,甚至jar这个单词就有罐子的意思,实际上jar包采用的也是zip的压缩方式,只不过将文件后缀定义为jar)。

jar包是通过JAVASE程序打成的包。

Jar与zip异同

jar文件格式以流行的zip文件格式为基础

相同点:jar、zip都用于压缩和发布

不同点:jar还用于

  • 部署
  • 封装、组件、插件程序
  • 可被编译器、JVM等工具直接使用

简单的讲,zip只是将代码文件压缩,打jar包不仅是文件压缩,还将代码中的类进行打包,这样就可以让别人直接进行引入调用了。

jar包目录结构

jar包主要用途:

在jar包中包含已经写好的一些类,这些类,打包到一起便于存放管理。将jar包引入到自己的项目中,就可以引入到自己的项目中,可以直接使用这些jar包中的类和属性(从前这些jar包会被扔到lib/目录下)

2. war包

war包就是web项目压缩包。war是一个可以直接运行的web模块,一个war包可以理解成就是一个web项目,通常用于网站,打成包部署到容器(如tomcat)中。

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

war包是sun公司提出的一种web应用程序格式,与jar类相似,也是很多文件的压缩包。

war包是javaWeb程序打的包。包含了项目的所有东西,包括:

  1. 代码编译成的class文件
  2. 依赖包
  3. 配置文件
  4. 网站页面(html、jsp、servlet、图片文件等)

war包文件按照一定目录结构来组织:

根目录
   |
   |---- .html、.jsp (或包含这两种文件的目录)
   |
   |---- WEB-INF 目录           // 存放 .class 文件和配置文件
   |        |
   |        |---- web.xml       // 该应用的配置文件
   |        |
   |        |---- classes 目录
   |        |         |
   |        |         |---- 编译好的 servlet 类和 js
   |        |         |
   |        |         |---- servlet 所依赖的其他类(如 JavaBean)
   |        |----- lib          // 存放该包的依赖 jar 包
   |
   |---- META-INF 目录          // 存放该包和扩展的配置数据

servlet所依赖的类,也可以打包成jar包放在WEB-INF下的lib目录下

war包部署优势

一个Web应用程序的目录和文件可能会非常多,将这个web应用程序部署到另一台机器上,会不太方便,因此,可以将这个web应用程序打包成Web归档文件(war),这个过程和把java 类文件打包成jar相似。

利用war文件,可以把servlet类文件和相关资源集中在一起进行发布

这样一来,web应用程序不再是按照目录层次结构来进行部署,而是把war文件作为部署单元来使用。

开发阶段不适合使用war的原因

开发阶段经常需要添加或删除web应用程序的内容,更新servlet类文件,而每一次改动后,重新建立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

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

在浏览器输入

http://localhost:tomcat_port/test

即可打开test项目的index.jsp页面(tomcat_port是自己的端口号)

如果需要更改配置文件:

  1. 关闭tomcat
  2. 删除test.war文件

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

  1. 由于刚刚启动过tomcat,tomcat会自动解压test.war为test文件夹。所以我们在webapps下面可以看到test文件夹。打开test文件夹更改配置文件即可。
  2. 更新完配置之后,启动tomcat。
  3. 浏览器打开即可

3. jar包和war包的区别

Springboot打包方式区别

SpringBoot适宜打成war包的场景

Springboot打成的jar包自带tomcat容器,适用于单个项目

但是若要把多个项目部署到同一个tomacat容器上,则需要分别打成war包,再将多个war包部署到一个tomcat容器上,以达到节省资源目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值