Jar/War/Ear等包的作用与区别详解
Jar/War/Ear等包的作用與區(qū)別詳解
? ? ? 以客戶(hù)角度來(lái)看,jar文件就是一種封裝格式,用戶(hù)不需要知道jar包中有多少個(gè).class格式的文件及每個(gè)文件中的功能與作用,也可以得到相應(yīng)的訪問(wèn)的結(jié)果。java中除了jar格式還有war和ear等包文件。
| ? | JAR | WAR | EAR |
| 英文 | Java Archive file | Web Archive file | Enterprise Archive file |
| 包含內(nèi)容 | class、properties文件,是文件封裝的最小單元;包含Java類(lèi)的普通庫(kù)、資源(resources)、輔助文件(auxiliary files)等 | Servlet、JSP頁(yè)面、JSP標(biāo)記庫(kù)、JAR庫(kù)文件、HTML/XML文檔和其他公用資源文件,如圖片、音頻文件等 | 除了包含JAR、WAR以外,還包括EJB組件 |
| 部署文件 | application-client.xml | web.xml | application.xml |
| 容器 | 應(yīng)用服務(wù)器(application servers) | 小型服務(wù)程序容器(servlet containers) | EJB容器(EJB containers) |
| 級(jí)別 | 小 | 中 | 大 |
?
1、EAR文件的打包
EAR文件包括整個(gè)JSP項(xiàng)目,內(nèi)含多個(gè) EJB Module(JAR文件)和 Web Module(WAR文件)。
EAR文件的生成可以使用winrar(windows平臺(tái)上的軟件)以zip壓縮方式或者從命令行以jar命令來(lái)生成。
操作步驟:
1)先打包成war和jar,并寫(xiě)好application.xml,放到?META-INF?目錄下。
2)打包命令:(進(jìn)入文件所在目錄)
| jar cf application.ear application.war application.jar META-INF\application.xml |
注意:application.xml是用來(lái)描述ear中包括的war和jar等包文件
?
3)解包命令:
| jar xf application.ear -C 目標(biāo)路徑 |
?
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 | <!DOCTYPE application PUBLIC?'-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN'?'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>? ?<application>? ?????<display-name>estore</display-name>? ?????<description>Application description</description>? ?????<module>? ?????????<ejb>customerEjb.jar</ejb>? ?????</module>? ?????<module>? ?????????<ejb>mailerEjb.jar</ejb>? ?????</module>? ?????<module>? ?????????<web>? ?????????????<web-uri>petstore.war</web-uri>? ?????????????<context-root>estore</context-root>? ?????????</web>? ?????</module>? ?????<module>? ?????????<ejb>petstoreEjb.jar</ejb>? ?????</module>? ?????<module>? ?????????<ejb>signonEjb.jar</ejb>? ?????</module>? ?????<module>? ?????????<ejb>personalizationEjb.jar</ejb>? ?????</module>? ?????<module>? ?????????<ejb>inventoryEjb.jar</ejb>? ?????</module>? ?????<module>? ?????????<ejb>shoppingcartEjb.jar</ejb>? ?????</module>? ?????<security-role>? ?????????<description>the gold customer role</description>? ?????????<role-name>gold_customer</role-name>? ?????</security-role>? ?????<security-role>? ?????????<description>the customer role</description>? ?????????<role-name>customer</role-name>? ?????</security-role>? ?????<security-role>? ?????????<role-name>administrator</role-name>? ?????</security-role>? ?</application> |
2、WAR的使用
1)生成war包文件命令:
| jar -cvf web.war 被打包文件 |
2)查看war包內(nèi)容命令:
| jar -tf web.war |
3)解壓war包文件命令:
| jar -xf web.war |
? ? ? 也可使用winrar軟件選擇zip壓縮方式,并將壓縮文件后綴名改為war即可壓縮生成war文件。同樣使用winrar軟件可以打開(kāi)war 文件,或者解壓war文件。
? ? ? 使用jar命令與winrar軟件的區(qū)別在于前者在壓縮文件的同時(shí)會(huì)生成 META-INF?文件夾,內(nèi)包含MANIFEST.MF文件。
3、何時(shí)使用war或者jar文件
? ? ? 在項(xiàng)目在沒(méi)有完全開(kāi)發(fā)完成時(shí),不適合使用war文件,因?yàn)槟愕念?lèi)會(huì)由于調(diào)試之類(lèi)的經(jīng)常被修改,來(lái)回創(chuàng)建war包很麻煩。當(dāng)項(xiàng)目完全開(kāi)發(fā)完成后續(xù)無(wú)需修改時(shí),可以創(chuàng)建war包。這個(gè)時(shí)候war包文件就相當(dāng)于一個(gè)web應(yīng)用程序;而jar文件就是把類(lèi)和一些相關(guān)的資源封裝到一個(gè)包中,便于程序中引用。
4、jar/war/ear包文件的作用與區(qū)別:
4.1、 作用與區(qū)別
1) jar: 把開(kāi)發(fā)時(shí)要引用通用(JAVA)類(lèi)及資源做封裝,打成包后便于存放管理;
2) war:一個(gè)(web)完整的應(yīng)用,通常是網(wǎng)站或WEB平臺(tái),打成包部署到容器中;
3) ear: 企業(yè)級(jí)應(yīng)用,實(shí)際上EAR包中包含WAR包和幾個(gè)企業(yè)級(jí)項(xiàng)目的配置文件而已,服務(wù)器中間件通常選擇WebSphere等都會(huì)使用EAR包。通常是EJB打成ear包。
4.2、打包方式
1) 所有的包都是用jar命令制作,只不過(guò)目標(biāo)文件的擴(kuò)展名不一樣。
2) 也可以用Ant來(lái)構(gòu)建。
3) Windows平臺(tái)winrar命令。
4.3、JET編譯成EXE
1) ?JET 是要用錢(qián)買(mǎi)的,據(jù)說(shuō) JET 也不是能把所有的 Java 程序都編譯成執(zhí)行文件,性能也要打些折扣。所以,使用制作可執(zhí)行 JAR 文件包的方法就是最佳選擇了,何況它還能保持 Java 的跨平臺(tái)特性。
總結(jié)
以上是生活随笔為你收集整理的Jar/War/Ear等包的作用与区别详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: eclipse如何导出WAR包
- 下一篇: Eclipse配置Tomcat和JDK方