Jar/War/Ear等包的作用與區別詳解
以客戶角度來看,jar檔案就是一種封裝格式,使用者不需要知道jar包中有多少個.class格式的檔案及每個檔案中的功能與作用,也可以得到相應的訪問的結果。java中除了jar格式還有war和ear等包檔案。
JAR |
WAR |
EAR |
|
英文 |
Java Archive file |
Web Archive file |
Enterprise Archive file |
包含內容 |
class、properties檔案,是檔案封裝的最小單元;包含Java類的普通庫、資源(resources)、輔助檔案(auxiliary files)等 |
Servlet、JSP頁面、JSP標記庫、JAR庫檔案、HTML/XML文件和其他公用資原始檔,如圖片、音訊檔案等 |
除了包含JAR、WAR以外,還包括EJB元件 |
部署檔案 |
application-client.xml |
web.xml |
application.xml |
容器 |
應用伺服器(application servers) |
小型服務程式容器(servlet containers) |
EJB容器(EJB containers) |
級別 |
小 |
中 |
大 |
1、EAR檔案的打包
EAR檔案包括整個JSP專案,內含多個 EJB Module(JAR檔案)和 Web Module(WAR檔案)。
EAR檔案的生成可以使用winrar(windows平臺上的軟體)以zip壓縮方式或者從命令列以jar命令來生成。
操作步驟:
1)先打包成war和jar,並寫好application.xml,放到 META-INF 目錄下。
2)打包命令:(進入檔案所在目錄)
|
注意:application.xml是用來描述ear中包括的war和jar等包檔案
3)解包命令:
|
weblogic自帶的petstore的application.xml例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
2、WAR的使用
1)生成war包檔案命令:
|
2)檢視war包內容命令:
|
3)解壓war包檔案命令:
|
也可使用winrar軟體選擇zip壓縮方式,並將壓縮檔案字尾名改為war即可壓縮生成war檔案。同樣使用winrar軟體可以開啟war 檔案,或者解壓war檔案。
使用jar命令與winrar軟體的區別在於前者在壓縮檔案的同時會生成 META-INF 資料夾,內包含MANIFEST.MF檔案。
3、何時使用war或者jar檔案
在專案在沒有完全開發完成時,不適合使用war檔案,因為你的類會由於除錯之類的經常被修改,來回建立war包很麻煩。當專案完全開發完成後續無需修改時,可以建立war包。這個時候war包檔案就相當於一個web應用程式;而jar檔案就是把類和一些相關的資源封裝到一個包中,便於程式中引用。
4、jar/war/ear包檔案的作用與區別:
4.1、 作用與區別
1) jar: 把開發時要引用通用(JAVA)類及資源做封裝,打成包後便於存放管理;
2) war:一個(web)完整的應用,通常是網站或WEB平臺,打成包部署到容器中;
3) ear: 企業級應用,實際上EAR包中包含WAR包和幾個企業級專案的配置檔案而已,伺服器中介軟體通常選擇WebSphere等都會使用EAR包。通常是EJB打成ear包。
4.2、打包方式
1) 所有的包都是用jar命令製作,只不過目標檔案的副檔名不一樣。
2) 也可以用Ant來構建。
3) Windows平臺winrar命令。
4.3、JET編譯成EXE
1) JET 是要用錢買的,據說 JET 也不是能把所有的 Java 程式都編譯成執行檔案,效能也要打些折扣。所以,使用製作可執行 JAR 檔案包的方法就是最佳選擇了,何況它還能保持 Java 的跨平臺特性。
注意:程式碼上線時將web專案以war的方式匯出後,直接放在tomcat容器的webapps下 ,啟動服務,即可執行該專案,該war包會自動解壓出一個同名的資料夾。