Java?的JAR包、EAR包、WAR包區(qū)別

WAR包

WAR(Web Archive file)網(wǎng)絡(luò)應(yīng)用程序文件,是與平臺(tái)無(wú)關(guān)的文件格式,它允許將許多文件組合成一個(gè)壓縮文件。War專(zhuān)用于Web方面。大部分的JAVA WEB工程,都是打成WAR包進(jìn)行發(fā)布的。

War是一個(gè)web模塊,其中需要包括WEB-INF,是可以直接運(yùn)行的WEB模塊。通常用于網(wǎng)站,打成包部署到容器中,以tomcat來(lái)說(shuō),將war文件包放置它的\webapps\目錄下,啟動(dòng)Tomcat,,這個(gè)包可以自動(dòng)進(jìn)行解壓,也就是你的web目錄,相當(dāng)于發(fā)布了。

典型的war包內(nèi)部結(jié)構(gòu)如下:

webapp.war

| index.jsp

|

|— images

|— META-INF

|— WEB-INF

| web.xml // WAR包的描述文件

|

|— classes

| action.class // java類(lèi)文件

|

|— lib

other.jar // 依賴的jar包

share.jar

War包中的文件格式按照一定的目錄結(jié)構(gòu)來(lái)組織。根據(jù)其根目錄下包含有html和jsp文件,或者包含有這兩種文件的目錄,另外還有WEB-INF目錄。通常在WEB-INF目錄下包含有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,為classes目錄下則包含編譯好的servlet類(lèi),或者servlet所依賴的其他類(lèi)(如javabean)。通常這些依賴的類(lèi)也可以打包成jar包放在WEB-INF下lib目錄下。

JAR包

JAR包通常是開(kāi)發(fā)時(shí)要引用的通用類(lèi),打成包便于存放管理。簡(jiǎn)單來(lái)說(shuō),jar包就是別人已經(jīng)寫(xiě)好的一些類(lèi),然后對(duì)這些類(lèi)進(jìn)行打包??梢詫⑦@些jar包引入你的項(xiàng)目中。可以直接使用這些jar包中的類(lèi)和屬性,這些jar包放在lib目錄下。

JAR文件格式以流行的ZIP文件格式為基礎(chǔ);與ZIP文件不同的是,jar文件不僅用于壓縮和發(fā)布,而且還用于部署和封裝庫(kù)、組件和插件程序,并可被像編譯器和JVM這樣的工具直接使用。Jar文件與zip文件唯一的區(qū)別就是在jar文件的內(nèi)容中,包含了一個(gè)META-INF/MANIFEST.MF文件,這個(gè)文件是在生成jar文件的時(shí)候自動(dòng)創(chuàng)建的。

作用:

1、作為工具包和類(lèi)庫(kù),這個(gè)是最基礎(chǔ)的作用,在大型項(xiàng)目中,一般會(huì)依賴N多個(gè)jar包

2、作為應(yīng)用工程和擴(kuò)展的構(gòu)建單元;開(kāi)發(fā)大型應(yīng)用的時(shí)候,一般會(huì)將應(yīng)用分為幾個(gè)單元,每個(gè)單元用jar包封裝,并相互依賴。

3、作為組件、applet或者插件程序的部署單元。

4、用于打包與組件關(guān)聯(lián)的輔助資源。

典型的jar包內(nèi)部結(jié)構(gòu)如下:

tools.jar

| resource.xml // 資源配置文件

| other.xml

|

|— META-INF

| MANIFEST.MF // jar包的描述文件

|— com // 類(lèi)的包目錄

|—test

util.class //java類(lèi)文件

EAR包

JAR(java歸檔文件)是與平臺(tái)無(wú)關(guān)的文件格式,它允許將許多文件組合成一個(gè)壓縮文件,為J2EE應(yīng)用程序創(chuàng)建的JAR文件是EAR文件(企業(yè)JAR文件)。針對(duì)企業(yè)級(jí)項(xiàng)目,實(shí)際上EAR包中包含WAR包和幾個(gè)企業(yè)項(xiàng)目配置文件而已,一般服務(wù)器選擇WebSphere等,都會(huì)使用EAR包。

典型的ear包內(nèi)部結(jié)構(gòu)如下:

app.ear

| ejb.jar // ejb-jar包

| other.jar // 普通的jar包

| webapp.war // war包

|

|—META-INF

application.xml // EAR描述文件

原文:https://m.toutiaocdn.cn/group/6615135412216136196/?iid=47049397706&app=news_article&timestamp=1540934788&group_id=6615135412216136196

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評(píng)論 6 342
  • ANT build.xml文件詳解(一) Ant的概念 可能有些讀者并不連接什么是Ant以及入可使用它,但只要使用...
    SkTj閱讀 4,164評(píng)論 0 2
  • 做Java開(kāi)發(fā),jar包和war包接觸的挺多的,有必要對(duì)它們做一個(gè)深入的了解,特總結(jié)整理如下: 1.jar包的介紹...
    Java程序員的日常閱讀 218,612評(píng)論 14 150
  • 本章聊一聊ServletContext 3.0規(guī)范中定義的注解以及在web應(yīng)用中使用的框架和庫(kù)的可插拔性的提升。 ...
    Lucky_Micky閱讀 6,180評(píng)論 0 3
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139

友情鏈接更多精彩內(nèi)容