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


相关推荐

  • kong安装配置手册

    kong安装配置手册下载OneSQLforPostgreSQLmkdir-p/root/source/kongcd/root/source/kongwgethttp://www.onexsoft.cn/software/onepgsql-9.4.11-rhel5-linux64.tar.gz安装PostgreSQLtarzxfonepgsql-9.4.11-rhel5-linux64.tar.gz-…

    2022年6月26日
    25
  • java setscale_java BigDecimal.setScale()的一些问题

    java setscale_java BigDecimal.setScale()的一些问题环境:Eclipse3.6jdk:1.6程序:packagecom.test.doubletest;importjava.math.BigDecimal;publicclassDoubleDataType{/***@paramargs*/publicstaticvoidmain(String[]args){Doubled_0=newDouble(0.00929…

    2022年10月20日
    4
  • 算法模型定义介绍

    算法模型定义介绍1.马尔科夫模型1.1马尔科夫过程  马尔可夫过程(Markovprocess)是一类随机过程。它的原始模型马尔可夫链。已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它以往的演变(过去)。  一个马尔科夫过程就是指过程中的每个状态的转移只依赖于之前的n个状态,这个过程被称为1个n阶的模型,其中n是影响转移状态的数目。最简单的马尔科夫过程就是一阶过程…

    2022年6月23日
    34
  • 上海淘财经网要道歉客户的信

    上海淘财经网要道歉客户的信

    2022年1月4日
    41
  • python+pycharm安装(pycharm最新版安装教程)

    下载Python官网下载地址:Python下载不同参数解释,小伙伴们根据自己情况进行下载即可(此处博主用的是3.7.3版本):–web-basedinstaller:在线安装。下载的是一个exe可执行程序,双击后,该程序自动下载安装文件进行安装。网络安装版,需联网–executableinstaller:程序安装。下载的是一个exe可执行程序,双击进行安装。本地安装,可执行程序(***)–embeddablezipfile:解压安装。下载的是一个压缩文件,解压后即表示安装完成。嵌入式版

    2022年4月14日
    75
  • 新浪云服务器使用流程[通俗易懂]

    新浪云服务器使用流程[通俗易懂]注册背景:当我们进行微信公众号开发的时候,需要使用一个服务器跟微信的服务器链接,如果在本地搭建服务器默认情况下,本地服务器是不能被外网链接的;这样就需要去解决这个问题,解决的方案又两种:方案一:

    2022年8月3日
    9

发表回复

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

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