• Java 的JAR包、EAR包、WAR包区别


    一、WAR包

    WAR(Web Archive file) 网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。WAR专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。

    WAR是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块。通常用于网站,打成包部署到容器中,以tomcat来说,将War文件包放置它的webapps目录下,启动Tomcat,这个包可以自动解压,也就是你的web目录,相当于发布了。

    经典的war包内部结构如下:

    webapp.war
    |    index.jsp
    |
    |— images
    |— META-INF
    |— WEB-INF
    |   web.xml                   // WAR包的描述文件
    |
    |— classes
    |          action.class       // java类文件
    |
    |— lib
    other.jar             // 依赖的jar包
    share.jar
    

    War包中的文件格式按照一定的目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下包含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,为classes目录下则包含编译好的servlet类,或者servlet所依赖的其他类(如javabean)。通常这些依赖的类也可以打包成jar包放在WEB-INF下lib目录下。

    二、JAR包

    JAR包通常是开发时要引用的通用类,打成包便于存放管理。简单来说,jar包就是别人写好的一些类,然后对这些类进行打包。可以将这些jar包引入你的项目中,可以直接使用这些jar包中的类和属性,这些jar包放在lib中。

    JAR文件格式以流行的ZIP文件格式为基础:与ZIP文件不同的是,jar文件不仅用于压缩和发布,而且还用于部署和封装库,组件和插件程序,并可被像编译器和JVM这样的工具直接使用。Jar文件与zip文件唯一的区别就是在jar文件的内容中,包含了一个META-INF/MANIFEST.MF文件,这个文件是在生成jar文件的时候自动创建的。
    作用:

    • 作为工具包和类库,这个是最基础的作用,在大型项目中,一般会依赖N多个jar包
    • 作为应用工程和扩展的构建单元;开发大型应用的时候,一般会将应用分为几个单元,每个单元用jar包封装,并相互依赖。
    • 作为组件、applet或者插件程序的部署单元。
    • 用于打包与组件关联的辅助资源。

    典型的jar包内部结构如下:

    tools.jar
    |  resource.xml                    // 资源配置文件
    |  other.xml
    |
    |— META-INF
    |            MANIFEST.MF         // jar包的描述文件
    |— com                                 // 类的包目录
    |—test
    util.class              //java类文件
    

    三、EAR包

    JAR(java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为J2EE应用程序创建的JAR文件是EAR文件(企业JAR文件)。针对企业级项目,实际上EAR包中包含WAR包和几个企业项目配置文件而已,一般服务器选择WebSphere等,都会使用EAR包。

    典型的ear包内部结构如下:

    app.ear
    |   ejb.jar                         // ejb-jar包
    |   other.jar                     // 普通的jar包
    |   webapp.war              // war包
    |
    |—META-INF
    application.xml        // EAR描述文件
    
  • 相关阅读:
    C# 事件的简单例子
    pl sql 的目录 所在的目录 不能有 小括号,如 Program Files (x86)
    转】 C# 图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
    TQQ2440第三节:串口
    今天发现一个bug,不知道是什么问题,printf的问题吗,还是什么。先记下!
    【转载】内存对齐详解
    TQQ2440第二节:流水灯
    TQQ2440第一节:启动代码
    wince下sources\sources.cmn\Makefile.def的相关作用
    (基于Java)编写编译器和解释器第10章:类型检查第一部分
  • 原文地址:https://www.cnblogs.com/baishuchao/p/9848216.html
Copyright © 2020-2023  润新知