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”;