JAR、WAR、EAR 区别

JAR包

JAR 文件格式以流行的 ZIP 文件格式为基础;

与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用

JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

作用:

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

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

 

tools.jar

  |  resource.xml                    // 资源配置文件

  |  other.xml

  | 

  |— META-INF           

  |            MANIFEST.MF         // jar包的描述文件

  |— com                               // 类的包目录

         |—test  

                   util.class            // java类文件

 

 

WAR包

WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。war专用在web方面

JAVA WEB工程,都是打成WAR包进行发布。

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

 

webapp.war

  |    index.jsp

  |

  |— images

  |— META-INF

  |— WEB-INF

          |   web.xml                   // WAR包的描述文件

          |

          |— classes

          |          action.class       // java类文件

          |

          |— lib

                    other.jar             // 依赖的jar包

                    share.jar

EAR包

为 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描述文件

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。