介绍
| jar | war | ear | |
|---|---|---|---|
| 英文 | Java Archive file | Web Archive file | Enterprise Archive file |
| 包含内容 | class、properties文件,是文件封装的最小单元;包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等 | Servlet、JSP页面、JSP标记库、jar库文件、Html/XML文档和其他公用资源文件,如图片、音频文件等 | 除了包含jar、war以外,还包括EJB组件 |
| 部署文件 | application-client.xml | web.xml | application.xml |
| 容器 | 应用服务器(application servers) | 小型服务程序容器(servlet containers) | EJB容器(EJB containers) |
| 级别 | 小 | 中 | 大 |
war 文件的使用
- 生成 war 包文件命令
1 | jar -cvf web.war 被打包文件 |
- 查看 war 包内容命令
1 | jar -tf web.war |
- 解压 war 包文件命令
1 | jar -xf web.war |
也可使用 winrar 软件选择 zip 压缩方式,并将压缩文件后缀名改为 war 即可压缩生成 war 文件。
同样使用 winrar 软件可以打开 war 文件,或者解压 war 文件。
使用 jar 命令与 winrar 软件的区别在于前者在压缩文件的同时会生成 META-INF 文件夹,内包含 MANIFEST.MF 文件。
ear 文件的打包
ear 文件包括整个 JSP 项目,内含多个 EJB Module(jar文件)和 Web Module(WAR文件)。
ear 文件的生成可以使用 winrar(windows平台上的软件)以 zip 压缩方式或者从命令行以 jar 命令来生成。
操作步骤:
先打包成 war 和 jar,并写好 application.xml,放到 META-INF 目录下。
打包命令:(进入文件所在目录)
1 | jar cf application.ear application.war application.jar META-INF\application.xml |
application.xml 是用来描述 ear 中包括的 war 和 jar 等包文件。
- 解包命令
1 | jar xf application.ear -C 目标路径 |
以下附上 Weblogic 自带的 petstore 的 application.xml 代码:
1 |
|
区别与联系
jar、war、ear 作用与区别
jar
把开发时要引用通用 Java 类及资源做封装,打成包后便于存放管理;
war
一个(web)完整的应用,通常是网站或 WEB 平台,打成包部署到容器中;
ear
企业级应用,实际上 EAR 包中包含 WAR 包和几个企业级项目的配置文件而已,服务器中间件通常选择 WebSphere 等都会使用 EAR 包。
通常是 EJB 打成 ear 包。
打包方式
所有的包都是用 jar 命令制作,只不过目标文件的扩展名不一样。
也可以用 Ant 来构建。
Windows 平台 winrar 命令。
何时使用 war 包
在项目在没有完全开发完成时,不适合使用 war 文件,因为你的类会由于调试之类的经常被修改,来回创建 war 包很麻烦。
当项目完全开发完成后续无需修改时,可以创建 war 包。
这个时候 war 包文件就相当于一个 web 应用程序;而 jar 文件就是把类和一些相关的资源封装到一个包中,便于程序中引用。