Java的JAR包,EAR包,WAR包的區別
WAR包
WAR(Web Archive file)網路應用程式檔案,是與平臺無關的檔案格式,它允許將許多檔案組合成一個壓縮檔案。War專用於Web方面。大部分的JAVA WEB工程,都是打成WAR包進行釋出的。
War是一個web模組,其中需要包括WEB-INF,是可以直接執行的WEB模組。通常用於網站,打成包部署到容器中,以tomcat來說,將war檔案包放置它的webapps目錄下,啟動Tomcat,,這個包可以自動進行解壓,也就是你的web目錄,相當於釋出了。
典型的war包內部結構如下:
webapp.war
| index.jsp
|
|— images
|— META-INF
|— WEB-INF
| web.xml // WAR包的描述檔案
|
|— classes
| action.class // java類檔案
|
|— lib
other.jar // 依賴的jar包
share.jar
War包中的檔案格式按照一定的目錄結構來組織。根據其根目錄下包含有html和jsp檔案,或者包含有這兩種檔案的目錄,另外還有WEB-INF目錄。通常在WEB-INF目錄下包含有一個web.xml檔案和一個classes目錄,web.xml是這個應用的配置檔案,為classes目錄下則包含編譯好的servlet類,或者servlet所依賴的其他類(如javabean)。通常這些依賴的類也可以打包成jar包放在WEB-INF下lib目錄下。
JAR包
JAR包通常是開發時要引用的通用類,打成包便於存放管理。簡單來說,jar包就是別人已經寫好的一些類,然後對這些類進行打包。可以將這些jar包引入你的專案中。可以直接使用這些jar包中的類和屬性,這些jar包放在lib目錄下。
JAR檔案格式以流行的ZIP檔案格式為基礎;與ZIP檔案不同的是,jar檔案不僅用於壓縮和釋出,而且還用於部署和封裝庫、元件和外掛程式,並可被像編譯器和JVM這樣的工具直接使用。Jar檔案與zip檔案唯一的區別就是在jar檔案的內容中,包含了一個META-INF/MANIFEST.MF檔案,這個檔案是在生成jar檔案的時候自動建立的。
作用:
1、作為工具包和類庫,這個是最基礎的作用,在大型專案中,一般會依賴N多個jar包
2、作為應用工程和擴充套件的構建單元;開發大型應用的時候,一般會將應用分為幾個單元,每個單元用jar包封裝,並相互依賴。
3、作為元件、applet或者外掛程式的部署單元。
4、用於打包與元件關聯的輔助資源。
典型的jar包內部結構如下:
tools.jar
| resource.xml // 資源配置檔案
| other.xml
|
|— META-INF
| MANIFEST.MF // jar包的描述檔案
|— com // 類的包目錄
|—test
util.class //java類檔案
EAR包
JAR(java歸檔檔案)是與平臺無關的檔案格式,它允許將許多檔案組合成一個壓縮檔案,為J2EE應用程式建立的JAR檔案是EAR檔案(企業JAR檔案)。針對企業級專案,實際上EAR包中包含WAR包和幾個企業專案配置檔案而已,一般伺服器選擇WebSphere等,都會使用EAR包。
典型的ear包內部結構如下:
app.ear
| ejb.jar // ejb-jar包
| other.jar // 普通的jar包
| webapp.war // war包
|
|—META-INF
application.xml // EAR描述檔案