1. 程式人生 > >jar、war、ear包的作用和區別

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.三者對比

借用網友的一張圖彙總三者的主要內容:


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

 (2)jar: 把開發時要引用通用(JAVA)類及資源做封裝,打成包後便於存放管理;

     war:一個(web)完整的應用,通常是網站或WEB平臺,打成包部署到容器中;

     ear: 企業級應用,實際上EAR包中包含WAR包和幾個企業級專案的配置檔案而已,伺服器中介軟體通常選擇WebSphere等都會使用EAR包。通常是EJB打成ear包。

  基礎的知識也是不能忽略的,希望可以幫助大家理解。