1. 程式人生 > >Java的JAR包,EAR包,WAR包的區別

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描述檔案