0.前言

java项目经常打包,有的打出来的是war包,有的打出来的是jar包,到底有什么区别?

1.jar包

jar包,Java Archive,翻译过来就是java档案。是Java编译好之后生成class文件,但是如果直接发布这些class文件的不方便,所以就把许多class文件打包为一个jar包。jar包中除了class文件还包括一些资源和配置文件,通常一个jar包就是一个java程序。

jar包的目录结构一般如下:

根目录
   |
   |---- 该包的 java 类文件目录
   |
   |---- META-INF 目录          // 存放该包和扩展的配置数据
2.war包

war包:属于打包文件。即Web Application Archive,与jar基本相同。但通常表示一个Java的web应用程序的包。一个 war 包可以理解成就是一个 web 项目,通常用于网站,打成包部署到容器(如 tomcat)中。

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

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

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

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

war包的目录结构一般如下:

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

tar包:属于打包文件。Lniux系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀为“tar”。简单说tar就是打包;

4.tar.gz包

tar.gz包:是压缩文件。经过gzip压缩后的tar文件,形成tar.gz包,扩展名为“xx.tar.gz”;

分类: java