zoukankan      html  css  js  c++  java
  • jar包和war包

    Jar (Java archive), 将实现了某功能的所有类及辅助资源用ZIP压缩形式打包而成的一个文件, 便于代码的管理和重复使用。当使用别人提供的jar时,只需要在classpath环境变量中添加这个jar文件,java虚拟机会自动在内存中解压这个jar包,把这个jar文件当作一个路径,在这个路径中查找所需要的类。

    Jar通常包括class文件和META-INF 目录。META-INF目录中的MANIFEST.MF文件,是JAR包的描述文件。它包含了JAR文件的内容描述,并在运行时向JVM提供应用程序的信息。META-INF还可以包含Maven的pom文件。

    jar包内部结构:

     

    MANIFEST.MF文件简介

    以Manifest-Version属性开头 ;每行都是键值对,最长72个字符。超过需要续行,下一行以空格开头,以空格开头的行都会被视为前一行的续行。每行都以回车结束,否则该行将会被忽略 。使用空行分隔主属性和package属性,class 要以.class结尾,package 要以 / 结尾 ,使用"/"而不是点分隔package 和class。

    Class-Path管理JAR的依赖包,路径使用"/"分隔目录,空格分隔多个包,与平台无关 。

    Main-Class:指定程序的入口,用于创建可执行的jar包。

     

    War (web archive),用zip格式压缩封装整个web应用,通常一个WAR文件就是一个Web应用程序。包含 Servlet、HTML页面、JSP页面、JSP标记库、JAR库文件、图像文件以及组成Web应用程序的其他资源。部署到另一台机器上,只需复制一个war文件放在webapps或者work目录,tomcat启动时会自动解压。

    war引用war时会将被引用的war的资源全部拷贝到当前war的相同目录下,重名文件会被替换。

    War包内部结构:

      

    以上皆为个人理解,如有错误之处,欢迎留言指正。
  • 相关阅读:
    vue 中按需引入 echarts
    [Vue warn]: Error in nextTick: "TypeError: Cannot read property 'init' of undefined"
    js计算图片大小(promise)
    git push 提示'You are not allowed to push code to this project'
    echarts canvas 层级太高 导致tooltip被遮盖
    卡片展示(不定宽),最后一行左对齐 的几种实现方式
    styled-components 使用小结
    echarts 平均值及 y轴刻度n等分配置
    react 中使用阿里彩色图标
    php unlink()函数使用
  • 原文地址:https://www.cnblogs.com/kevin2chen/p/6539351.html
Copyright © 2011-2022 走看看