大家好,又见面了,我是你们的朋友全栈君。
最近思考了一下jar包和war包的异同,发现一篇文章写的非常不错,翻译在此。
一、概述
本文主要讨论Java中war包和jar包的不同。
首先,我们先看不同包的结构,然后对比他们的不同。
二、JAR包
jar包的文件拓展名为: .jar ,包含库,资源和元数据文件。
本质上,jar包是一个包含多个 .class 文件,Java库的和应用的资源文件的压缩包。
这是一个简单的jar包结构:
META-INF/
MANIFEST.MF
com/
baeldung/
MyApplication.class
META-INF/MANIFEST.MF 包含额外存储在压缩包中的元数据。
我们可以用jar命令和maven构建工具来创建jar包。
三、WAR包
WAR(Web Application Archive)表示web应用包或者web应用资源。
拓展名为:.war 。用来打包web应用程序,用来发布到servlet或者jsp容器中。
META-INF/
MANIFEST.MF
WEB-INF/
web.xml
jsp/
helloWorld.jsp
classes/
static/
templates/
application.properties
lib/
// *.jar files as libs
包里有 META-INF目录MANIFEST.MF 文件包含了web包的很多有用信息,这个包是私有的,外部是无法访问的。
里面也包含了公开的WEB-INF目录,包含了web静态资源,HTML页面,图片,js文件等。另外还包含了web.xml配置文件,servlet类和依赖的库。
我们也可以像jar包一样通过命令行或maven构建工具来打war包。
4. 关键的不同
那么他们之间的关键不同点有哪些?
第一个最明显的不同是文件的拓展名。
第二个明显的不同是目的,jar包可以打包各种文件,可以当做类库,插件或者其他任意应用。而war文件只用在web应用中。
第三,他们的结构也不同。war包有预定义的结构WEB-INF和META-INF目录。
5、 结论
本文比较了jar和war文件类型。他们都是压缩文件,他们也有很多不同之处。
英文原文:https://www.baeldung.com/java-jar-war-packaging
如果觉得本文对你有帮助,欢迎点赞评论,欢迎关注我,我将努力创作更多更好的文章。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142500.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...