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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 互联网金融风控模型「建议收藏」

    互联网金融风控模型「建议收藏」一、市场调研目前市面主流的风控模型1、互联网金融前10名排行榜(数据截止日期2017-09-12)互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。1.1蚂蚁金服1.1.1大数据技术对接第三方征信公司芝麻信用分,通过用户信用历史、行为偏好、履约能力、身份特质、人脉关系五个维度对…

    2022年6月14日
  • tomcat服务启动,但是无法访问网站_java获取request的所有参数

    tomcat服务启动,但是无法访问网站_java获取request的所有参数废话不说,真接上代码。HttpURLConnectionconn=(HttpURLConnection)url.openConnection();conn.setRequestProperty(“Content-Length”,”0″);中的第二句没有起作用(发出去的http头里,未含有Content-Length字段)。但是这个代码在android平台上跑的时候,第二句是起了作用的。为…

    2022年9月10日
  • getAttribute() 与 attr() 的区别

    getAttribute() 与 attr() 的区别

    2021年10月31日
  • linux系统软件安装和卸载的常见方法_ubuntu如何卸载软件

    linux系统软件安装和卸载的常见方法_ubuntu如何卸载软件文章来源笔者学习Linux记录的《linux笔记》笔者所用版本为Ubuntu———————————————————————————————————————————1.在线安装1.1apt-get(1)sudoapt-getinstall软件名称在线下载安装(2)sudoapt-getr…

    2022年9月9日
  • ribbon的负载均衡策略_f5负载均衡配置

    ribbon的负载均衡策略_f5负载均衡配置在这里吐槽一句:网上很多文章真是神坑,你不看还好,看了只会问题越来越多,就连之前的问题都没有解决!!!不多说了,Ribbon作为后端负载均衡器,比Nginx更注重的是请求分发而不是承担并发,可以直接感知后台动态变化来指定分发策略。它一共提供了7种负载均衡策略:策略名策略声明策略描述实现说明

    2022年10月13日
  • vi编辑时出现E325:ATTENTION「建议收藏」

    vi编辑时出现E325:ATTENTION「建议收藏」报错信息:vi编辑时出现E325:ATTENTION描述:这是由于在编辑该文件的时候异常退出了,因为vim在编辑文件时会创建一个交换文件swapfile以保证文件的安全性。解决办法:为了去掉这个警告,我们需要删除这个swp文件:rm-f.config.swp

    2022年5月19日

发表回复

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

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