最近接觸這幾個詞較多,停下來總結(jié)總結(jié)它們的區(qū)分和聯(lián)系,更好的深入理解
Jar、war、EAR、在文件結(jié)構(gòu)上,3者并沒有甚么不同,它們都采取zip或jar檔案文件緊縮格式。但是它們的使用目的有所區(qū)分:
Jar文件(擴(kuò)大名為. Jar,Java Application Archive)包括Java類的普通庫、資源(resources)、輔助文件(auxiliary files)等
War文件(擴(kuò)大名為.War,Web Application Archive)包括全部Web利用程序。在這類情形下,1個Web利用程序被定義為單獨的1組文件、類和資源,用戶可以對jar文件進(jìn)行封裝,并把它作為小型服務(wù)程序(servlet)來訪問。
Ear文件(擴(kuò)大名為.Ear,Enterprise Application Archive)包括全部企業(yè)利用程序。在這類情形下,1個企業(yè)利用程序被定義為多個jar文件、資源、類和Web利用程序的集合。
每種文件(.jar, .war, .ear)只能由利用服務(wù)器(application servers)、小型服務(wù)程序容器(servlet containers)、EJB容器(EJB containers)等進(jìn)行處理。
EAR文件包括全部項目,內(nèi)含多個ejb module(jar文件)和web module(war文件)
EAR文件的生成可使用winrar zip緊縮方式或jar命令。
步驟:
先打包成war和jar,并寫好application.xml,放到META-INF目錄下,然后 jar cf your_application.ear your_war.war your_jar.jar META-INF/application.xml, 打包,我這假定都在當(dāng)前目錄下 可以用 jar xf your_application.ear解壓
application.xml中描寫你的ear中包括的war和jar (上篇文章已提到)
jboss中 的application.xml例子
WAR的使用:
如果想生成war文件:可使用以下命令:jar -cvf web1.war *
如果想查看web1.war中都有哪些文件,可使用命令:jar -tf web1.war
如果想直接解壓web1.war文件,可使用命令:jar -xvf web1.war
另外,也可以使用winrar軟件選擇zip緊縮方式,并將緊縮文件后綴名改成war便可緊縮生成war文件;一樣使用winrar軟件可以強(qiáng)行打開war文件,或強(qiáng)行解壓war文件
使用jar命令與winrar軟件的區(qū)分在于前者在緊縮文件的同時會生成MetaINF文件夾,內(nèi)包括MANIFEST.MF文件。
總結(jié):
什么時候使用war或jar文件:當(dāng)你的項目在沒有完全竣工的時候,不合適使用war文件,由于你的類會由于調(diào)試之類的常常改,這樣來回刪除、創(chuàng)建war文件很不爽,最好是你的項目已完成了,不改了,那末就打個war包吧,這個時候1個war文件就相當(dāng)于1個web利用程序鳥;而jar文件就是把類和1些相干的資源封裝到1個包中,便于程序中援用。