Java 的JAR包、EAR包、WAR包区别
一、WAR包
WAR(Web Archive file) 网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。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文件的时候自动创建的。
作用:
- 作为工具包和类库,这个是最基础的作用,在大型项目中,一般会依赖N多个jar包
- 作为应用工程和扩展的构建单元;开发大型应用的时候,一般会将应用分为几个单元,每个单元用jar包封装,并相互依赖。
- 作为组件、applet或者插件程序的部署单元。
- 用于打包与组件关联的辅助资源。
典型的jar包内部结构如下:
tools.jar
| resource.xml // 资源配置文件
| other.xml
|
|— META-INF
| MANIFEST.MF // jar包的描述文件
|— com // 类的包目录
|—test
util.class //java类文件
三、EAR包
JAR(java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为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 的JAR包、EAR包、WAR包区别的更多相关文章
- spring boot将jar包转换成war包发布
spring boot将jar包转换成war包发布步骤 将<packaging>jar</packaging>修改为<packaging>war</packa ...
- Spring Boot由jar包转成war包
Spring Boot由jar包转成war包 spring boot 默认是以jar包形式启动web程序,在新建spring boot项目时候可以选择war包的启动方式. 建议在开发的时候建立以jar ...
- spring项目使用mave将第三方jar包打进war包中
背景:一个标准的ssm项目,需要使用到第三方jar,现需要将项目发布到liunx的服务器上,将项目打成war包,第三方war包也需要打进去 首先是直接打包,发现第三方jar包并没有打进去......蛋 ...
- Maven -- 将引用的本地jar文件打进war包里
我们在做maven项目开发中有时候引用了本地第三方包,例如: <dependency> <groupId>org.artofsolving.jodconverter</g ...
- java war包 路径--解决war包中文件路径问题
https://blog.csdn.net/u013409283/article/details/51480948 转自:http://free-chenwei.iteye.com/blog/1507 ...
- java web项目使用IDEA打成war包
步骤: 1.点击 File -->Project Structure...如下图: 2.出现如下界面后点击 Artifacts--> 绿色加号-->Web Application:A ...
- Linux下打包压缩成war包和解压war包
一. 打包成war包 因为种种原因公司需要把java程序达成war包.起先用zip命令打包,起先可以用,后来却无法使用.今天找到一个更好的办法.用jar命令,前提是要安装jdk. 把当前目录下的所有文 ...
- Maven项目打包成war包并启动war包运行
1 项目打包 1.1 右键点击所需要打包的项目,点击如图所示 Maven clean,这里 Maven 会清除掉之前对这个项目所有的打包信息. 1.2进行完 Maven clean 操作后,在ecli ...
- jar 压缩 解压 war包
Win+R 输入cmd进入命令行,进入到源码所在目录.所用工具,jdk自带的jar.exe 打包命令:jar -cvf xxx.war * 解包命令: jar -xvf xxx.war * 参数 说明 ...
- java打包jar,war,ear包的作用、区别
java的打包jar,war,ear包的作用,区别,打包方式. a) 作用与区别 i. jar: 通常是开发时要引用通用(JAVA)类,打成包便于存放管理 ii. war ...
随机推荐
- P2245 星际导航
题目描述 sideman 做好了回到 Gliese星球的硬件准备,但是 sideman 的导航系统还没有完全设计好.为了方便起见,我们可以认为宇宙是一张有 N 个顶点和 M 条边的带权无向图,顶点表示 ...
- Spring Boot Mock单元测试学习总结
单元测试的方法有很多种,比如使用Postman.SoapUI等工具测试,当然,这里的测试,主要使用的是基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从 ...
- 【JavaScript】赛码网前端笔试本地环境搭建
参考:https://hoofoo.me/article/2017-04-11/%E8%B5%9B%E7%A0%81%E7%BD%91%E5%89%8D%E7%AB%AF%E7%AC%94%E8%AF ...
- docker常用命令(一)
1. docker命令 docker images //查看本地镜像 docker rmi 镜像名称:标签名称 //删除一个镜像 docker rm 容器ID //删除一个容器 docker comm ...
- 文件操作示例脚本 tcl
linux 下,经常会对用到文件操作,下面是一个用 tcl 写的文件操作示例脚本: 其中 set f01 [open "fix.tcl" w] 命令表示 打开或者新建一个文件“fi ...
- PAT乙级1010
1010 一元多项式求导 (25 分) 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为nxn−1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不 ...
- sed 替换有单引号的行
cat test.txt $config['useragent'] = 'Roundcube Webmail'; // Hide version number//$config['username_d ...
- 【转】C++三大特性
又重新看了一个多月的书,也算是基本上了解了一些很基础的东西,学习C++就得掌握它所具备的三大特性. 封装性是基础,继承性是关键,多态性是补充,并且多态性存在于继承的环境中. 封装性 C++语言中支持数 ...
- 关于mysql中GROUP_CONCAT函数的使用
偶然看到公司存储过程中有个字符串拼接的函数,改bug过程中使用到了,还挺有用的,于是记录下来方便记忆,帮助有需要的人. 这是我需要整理的串,他是调用了一个存储过程,传入组织机构的id和迭代层数,返回来 ...
- 使用canvas通过js制作一个小型英雄抓怪兽的2D小游戏
首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...