從j2se到j2ee,接觸到了一些新的東西,關於jar,war,ear我理了理頭緒,整理如下:首先,這三種檔案都可以看作是java的壓縮格式,其實質是實現了不同的封裝:jar--封裝類war--封裝web網站ear--封裝ejb。它們的關係具體為: jar: 是java Achieve--按java格式壓縮的類包,包含內容 class、properties檔案, 是檔案封裝的最小單元層級:小 war: 是file web Achieve--包含Servlet、JSP頁面、JSP標記庫、JAR庫檔案 HTML/XML文檔和其他公用資源檔,片、音頻檔案等層級:中 ear: 是 file Enterprise Achieve--除了包含JAR、WAR以外,還包括EJB組件
部署檔案 application-client.xml web.xml application.xml
層級:大 一個web組件開發人員執行以下的任務來傳遞一個包含web組件的WAR檔案:| 編寫並編譯servlet原始碼| 編寫jsp、html檔案| 指定web的開發描述符| 邦定.class,.jsp,.html和部署描述符到一個WAR檔案。 以最終客戶的角度來看,.jar檔案就是一種封裝,他們不需要知道.jar檔案中有多少個.class檔案,每個檔案中的功能與作用,同樣可以得到他們希望的結果。除jar以外對於j2ee來說還有war和ear。區別見下表:
jar war ear
英文 java archive file web archive file enterprise archive file
包含內容 class、properties檔案,是檔案封裝的最小單元 servlet、jsp頁面、jsp標記庫、jar庫檔案、html/xml文檔和其他公用資源檔,片、音頻檔案等 除了包含jar、war以外,還包括ejb組件
部署檔案 application-client.xml web.xml application.xml
層級 小 中 大 ear中可以包含war,jar檔案。jar檔案可以將ejb包含其中。war可以將web組件包含其中。
jar表示java的標準檔案檔案,有一個有趣的雙關語:a jar of beans(一罐豆子)。