Java的jar包和war包的异同

Java的jar包和war包的异同最近思考了一下jar包和war包的异同,发现一篇文章写的非常不错,翻译在此。一、概述本文主要讨论Java中war包和jar包的不同。首先,我们先看不同包的结构,然后对比他们的不同。二、JAR包jar包的文件拓展名为:.jar,包含库,资源和元数据文件。本质上,jar包是一个包含多个.class文件,Java库的和应用的资源文件的压缩包。这是一个简单的jar…

大家好,又见面了,我是你们的朋友全栈君。

最近思考了一下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

 

如果觉得本文对你有帮助,欢迎点赞评论,欢迎关注我,我将努力创作更多更好的文章。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142500.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal

    新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal1正则表达式Regex1.1概述正确的字符串格式规则。常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。1.2常见语法1.3String提供了支持正则表达式的方法Matches(正则):当前字符串能否匹配正则表达式replaceAll(正则,子串):替换子串split(正则):拆分字符串1.4练习:测试输入身份证号创建包:cn.tedu.api创建类:TestRegex.javapackagecn.tedu.api;impo

    2022年5月2日
    39
  • 多线程编程里如何运用CreateMutex,WaitForSingleObject,ReleaseMutex来实现线程同步

    多线程编程里如何运用CreateMutex,WaitForSingleObject,ReleaseMutex来实现线程同步多线程编程里如何运用CreateMutex,WaitForSingleObject,ReleaseMutex来显现线程同步

    2022年6月26日
    36
  • C语言fread函数_C语言fread

    C语言fread函数_C语言freadc语言中fread函数C语言中的fread()函数(fread()functioninC)Prototype:原型:size_tfread(void*buffer,size_tlength,size_tcount,FILE*filename);Parameters:参数:void*buffer,size_tlength,si…

    2022年9月12日
    2
  • 微信小程序注册认证文档[通俗易懂]

    一、小程序注册须知小程序小程序主体公司注册小程序名称客户自定义(小程序名称一经填写,修改腾讯官方收取费用300元)二、微信认证申请流程(政府/事业单位类型)第一步:登录微信公众平台->设置->微信认证->开通第二步:同意协议:签署《微信公众平台认证服务协议》第三步:验证管理员第四步:选择认证类型及填写认证资料选择认证类型及上传申请公函政府/事业单位资质信息对公银行账户信息联系人信息填写第五步:确认名称公众号名称可以选择2种

    2022年4月12日
    157
  • smb服务检测(smb应用)

     开源包,http://jcifs.samba.org/.复制一篇文章.用JAVA访问共享文件系统前言在Microsoft网络系统中,SMB(ServerMessageBlock,服务信息块)协议是WindowsforWorkgroup(WfWg)、Windows95、WindowsNT和LanManager用来实现共享局域网上

    2022年4月13日
    71
  • 白嫖 IObit 系列软件例如 IObit Uninstaller

    白嫖 IObit 系列软件例如 IObit Uninstaller一、下载version.dllhttps://wws.lanzous.com/iFhkhm0g3qh二、将它复制到安装目录三、看到Pro即成功使用注意:右下角管理注册码别点,否则会闪退,闪退重启程序一样正常使用

    2022年10月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号