最近接觸這幾個(gè)詞較多,停下來(lái)總結(jié)總結(jié)它們的區(qū)分和聯(lián)系,更好的深入理解
Jar、war、EAR、在文件結(jié)構(gòu)上,3者并沒(méi)有甚么不同,它們都采取zip或jar檔案文件緊縮格式。但是它們的使用目的有所區(qū)分:
Jar文件(擴(kuò)大名為. Jar,Java Application Archive)包括Java類的普通庫(kù)、資源(resources)、輔助文件(auxiliary files)等
War文件(擴(kuò)大名為.War,Web Application Archive)包括全部Web利用程序。在這類情形下,1個(gè)Web利用程序被定義為單獨(dú)的1組文件、類和資源,用戶可以對(duì)jar文件進(jìn)行封裝,并把它作為小型服務(wù)程序(servlet)來(lái)訪問(wèn)。
Ear文件(擴(kuò)大名為.Ear,Enterprise Application Archive)包括全部企業(yè)利用程序。在這類情形下,1個(gè)企業(yè)利用程序被定義為多個(gè)jar文件、資源、類和Web利用程序的集合。
每種文件(.jar, .war, .ear)只能由利用服務(wù)器(application servers)、小型服務(wù)程序容器(servlet containers)、EJB容器(EJB containers)等進(jìn)行處理。
EAR文件包括全部項(xiàng)目,內(nèi)含多個(gè)ejb module(jar文件)和web module(war文件)
EAR文件的生成可使用winrar zip緊縮方式或jar命令。
步驟:
先打包成war和jar,并寫(xiě)好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中描寫(xiě)你的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)行打開(kāi)war文件,或強(qiáng)行解壓war文件
使用jar命令與winrar軟件的區(qū)分在于前者在緊縮文件的同時(shí)會(huì)生成MetaINF文件夾,內(nèi)包括MANIFEST.MF文件。
總結(jié):
什么時(shí)候使用war或jar文件:當(dāng)你的項(xiàng)目在沒(méi)有完全竣工的時(shí)候,不合適使用war文件,由于你的類會(huì)由于調(diào)試之類的常常改,這樣來(lái)回刪除、創(chuàng)建war文件很不爽,最好是你的項(xiàng)目已完成了,不改了,那末就打個(gè)war包吧,這個(gè)時(shí)候1個(gè)war文件就相當(dāng)于1個(gè)web利用程序鳥(niǎo);而jar文件就是把類和1些相干的資源封裝到1個(gè)包中,便于程序中援用。