jar、war、ear包的作用和区别

在开发中,我们常常看到jar包,war包和ear,那么这三种究竟有什么区别和联系呢?我们来看一下。

1.jar包

  Java Archive。

  包含:class、properties文件,是文件封装的最小单元。打包的主要是Java类的普通库、资源、辅助文件(auxiliary files)等。

  部署文件:application-client.xml文件。

  服务器:应用服务器(application servers)

  作用:jar包是与平台无关的文件格式。jar包就是一种封装,我们不需要知道jar包里面包含多少.class文件,也无需了解每个文件的结构,只需要引入jar,就可以去实习想要的结果。在开发时我们经常饮用的通用类,比如一些api,common,我们可以打成jar包,便于存放和大家使用。

2.war包

  Web Archive 。

  包含:Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等。

  部署文件:web.xml文件

  服务器:小型服务程序容器(servlet containers)

  作用:一个war文件代表了一个web应用程序,web的目录和文件可能非常多,我们就把web应用程序打包成war包,然后把war包部署到服务器上。一般在项目完成后再创建war包。

3.ear包

  Enterprise Archive。

  包含:除了包含JAR、WAR以外,还包括EJB组件。

  部署文件:application.xml

  服务器:EJB容器(EJB containers)

  作用:我们通常是把EJB打成ear包,ear包括jar包,war包还有EJB组件。简单来说,ear包括整个项目。ear属于企业级应用,封装EJB。

4.三者对比

借用网友的一张图汇总三者的主要内容:

jar、war、ear包的作用和区别

 (1)我们可以清楚的看到jar包括.class文件,war包括jar,ear包括war和jar。故JAR< WAR < EAR。

 (2)jar: 把开发时要引用通用(JAVA)类及资源做封装,打成包后便于存放管理;

     war:一个(web)完整的应用,通常是网站或WEB平台,打成包部署到容器中;

     ear: 企业级应用,实际上EAR包中包含WAR包和几个企业级项目的配置文件而已,服务器中间件通常选择WebSphere等都会使用EAR包。通常是EJB打成ear包。

  

  基础的知识也是不能忽略的,希望可以帮助大家理解。