Java 的WAR包、JAR包、EAR包

一、WAR包 (Web Archive file)

WAR 网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War 专用于 Web 方面。大部分的 JAVA WEB 工程,都是打成 WAR 包进行发布的。
War 是一个 web 模块,其中需要包括 WEB-INF,是可以直接运行的 WEB 模块。通常用于网站,打成包部署到容器中,以 tomcat 来说,将 war 文件包放置它的 webapps 目录下,启动 Tomcat,,这个包可以自动进行解压,也就是你的 web 目录,相当于发布了。典型的 war 包内部结构如下:

webapp.war
| index.jsp
|
|— images
|— META-INF
|— WEB-INF
| web.xml // WAR包的描述文件
|
|— classes
| action.class // java类文件
|
|— lib
other.jar // 依赖的jar包
share.jar

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

二、JAR包

JAR 包通常是开发时要引用的通用类,打成包便于存放管理。简单来说,jar 包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些 jar 包引入你的项目中。可以直接使用这些 jar 包中的类和属性,这些 jar 包放在 lib 目录下。
JAR 文件格式以流行的 ZIP 文件格式为基础;与 ZIP 文件不同的是,jar 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。Jar 文件与 zip 文件唯一的区别就是在 jar 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 jar 文件的时候自动创建的。

作用:
1、作为工具包和类库,这个是最基础的作用,在大型项目中,一般会依赖N多个jar包
2、作为应用工程和扩展的构建单元;开发大型应用的时候,一般会将应用分为几个单元,每个单元用 jar 包封装,并相互依赖。
3、作为组件、applet 或者插件程序的部署单元。
4、用于打包与组件关联的辅助资源。

典型的 jar 包内部结构如下:

tools.jar
| resource.xml // 资源配置文件
| other.xml
|
|— META-INF
| MANIFEST.MF // jar包的描述文件
|— com // 类的包目录
|—test
util.class //java类文件

三、EAR包:Java归档文件

EAR 是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。针对企业级项目,实际上 EAR 包中包含 WAR 包和几个企业项目配置文件而已,一般服务器选择 WebSphere 等,都会使用 EAR 包。典型的 ear 包内部结构如下:

app.ear
| ejb.jar // ejb-jar包
| other.jar // 普通的jar包
| webapp.war // war包
|
|—META-INF
application.xml // EAR描述文件

你可能感兴趣的:(Java 的WAR包、JAR包、EAR包)