War包和Jar包的區別

做Java開發,jar包和war包接觸的挺多的,有必要對它們做一個深入的瞭解,總結整理如下:

      Jar文件(擴展名爲. Jar,Java Application Archive)包含Java類的普通庫、資源(resources)、輔助文件(auxiliary files)等

  War文件(擴展名爲.War,Web Application Archive)包含全部Web應用程序。在這種情形下,一個Web應用程序被定義爲單獨的一組文件、類和資源,用戶可以對jar文件進行封裝,並把它作爲小型服務程序(servlet)來訪問。

  Ear文件(擴展名爲.Ear,Enterprise Application Archive)包含全部企業應用程序。在這種情形下,一個企業應用程序被定義爲多個jar文件、資源、類和Web應用程序的集合。

  每一種文件(.jar, .war, .ear)只能由應用服務器(application servers)、小型服務程序容器(servlet containers)、EJB容器(EJB containers)等進行處理。

Java的打包jar、war、ear包的作用、區別、打包方式:

1、 作用與區別

i.  jar:通常是開發時要引用通用(JAVA)類,打成包便於存放管理;

ii. war:是做好一個(web)應用後,通常是網站,打成包部署到容器中;

iii. ear: 企業級應用,實際上EAR包中包含WAR包和幾個企業級項目的配置文件而已,一般服務器選擇WebSphere等,都會使用EAR包。通常是EJB打成ear包。

2、打包方式

i. 所有的包都是用jar打的,只不過目標文件的擴展名不一樣;

ii. 也可以用Ant來安成構建。

3、JET編譯成EXE

i.  JET 是要用錢買的,而且據說 JET 也不是能把所有的 Java 程序都編譯成執行文件,性能也要打些折扣。所以,使用製作可執行 JAR 文件包的方法就是最佳選擇了,何況它還能保持 Java 的跨平臺特性。

注意:

將web項目以war的方式導出後,直接放在tomcat容器的webapps下 ,啓動服務,即可運行該項目,該war包會自動解壓出一個同名的文件夾。

 

1.jar包的介紹

JAR(Java Archive,Java 歸檔文件)是與平臺無關的文件格式,它允許將許多文件組合成一個壓縮文件。JavaSE程序可以打包成Jar包(J其實可以理解爲Java了)。

JAR 文件格式以流行的 ZIP 文件格式爲基礎。與 ZIP 文件不同的是,JAR 文件不僅用於壓縮和發佈,而且還用於部署和封裝組件插件程序,並可被像編譯器和 JVM 這樣的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用來指示工具如何處理特定的 JAR。

簡單來說,jar包就是別人已經寫好的一些類,然後對這些類進行打包。可以將這些jar包引入到你的項目中,可以直接使用這些jar包中的類和屬性,這些jar包一般放在lib目錄下。

2.war包的介紹

war是一個可以直接運行的web模塊,通常用於網站,打成包部署到容器中。以Tomcat來說,將war包放置在其\webapps\目錄下,然後啓動Tomcat,這個包就會自動解壓,就相當於發佈了。

war包是Sun提出的一種web應用程序格式,與jar類似,是很多文件的壓縮包。war包中的文件按照一定目錄結構來組織。根據其根目錄下包含有html和jsp文件,或者包含有這兩種文件的目錄,另外還有WEB-INF目錄。通常在WEB-INF目錄下含有一個web.xml文件和一個classes目錄,web.xml是這個應用的配置文件,而classes目錄下則包含編譯好的servlet類和jsp,或者servlet所依賴的其他類(如JavaBean)。通常這些所依賴的類也可以打包成jar包放在WEB-INF下的lib目錄下。

簡單來說,war包是JavaWeb程序打的包,war包裏面包括寫的代碼編譯成的class文件,依賴的包,配置文件,所有的網站頁面,包括html,jsp等等。一個war包可以理解爲是一個web項目,裏面是項目的所有東西。

3.區別:WAR文件代表了一個Web應用程序,JAR是類的歸檔文件。

如果一個Web應用程序的目錄和文件非常多,那麼將這個Web應用程序部署到另一臺機器上,就不是很方便了,這時可以將Web應用程序打包成Web 歸檔(WAR)文件,這個過程和把Java類文件打包成JAR文件的過程類似。利用WAR文件,可以把Servlet類文件和相關的資源集中在一起進行發佈。在這個過程中,Web應用程序就不是按照目錄層次結構來進行部署了,而是把WAR文件作爲部署單元來使用。

一個WAR文件就是一個Web應用程序,建立WAR文件,就是把整個Web應用程序(不包括Web應用程序層次結構的根目錄)壓縮起來,指定一個.war擴展名。

要注意的是,雖然WAR文件和JAR文件的文件格式是一樣的,並且都是使用jar命令來創建,但就其應用來說,WAR文件和JAR文件是有根本區別的。JAR文件的目的是把類和相關的資源封裝到壓縮的歸檔文件中,而對於WAR文件來說,一個WAR文件代表了一個Web應用程序,它可以包含 Servlet、HTML頁面、Java類、圖像文件,以及組成Web應用程序的其他資源,而不僅僅是類的歸檔文件。

那麼什麼時候應該使用WAR文件呢?在開發階段不適合使用WAR文件,因爲在開發階段,經常需要添加或刪除Web應用程序的內容,更新 Servlet類文件,而每一次改動後,重新建立WAR文件將是一件浪費時間的事情。在產品發佈階段,使用WAR文件是比較合適的,因爲在這個時候,幾乎不需要再做什麼改動了。

在開發階段,我們通常將Servlet源文件放到Web應用程序目錄的src子目錄下,以便和Web資源文件區分。在建立WAR文件時,只需要將src目錄從Web應用程序目錄中移走,就可以打包了。

4.部署war包到Tomcat

1). 我這裏工作中一般是開發打war包給測試,比如說現在測試拿到一個war包,名字叫test.war。

2). 打開Tomcat的安裝路徑 ,假設是“D:\Tomcat\apache-tomcat-7.0.68”,然後進入到 webapps文件夾中,把 test.war放到 webapps文件夾。

3). 啓動Tomcat。

如果不需要更改配置文件:到這一步就可以了。

在瀏覽器輸入“http:localhost:tomcat_port/test即可打開test項目的 index.jsp頁面(port是自己的端口號)。如果test項目沒有index.jsp頁面,那就需要打開其他相應的頁面。

如果需要更改配置文件:

4). 關閉 Tomcat。

5). 刪除 test.war文件(如果在tomcat啓動的狀態下刪去war包,解壓好的文件夾也會被一併刪除,所以需要在解壓後停止tomcat, 然後刪掉war包,這時再啓動。這時項目文件夾就會被認爲不是war解壓而來。)。

6). 由於剛剛啓動過Tomcat,Tomcat會自動解壓縮test.war爲 test文件夾。所以我們在webapps下面可以看到test文件夾。打開test文件夾更改配置文件即可。

7). 更新完配置之後,啓動Tomcat。

8). 瀏覽器打開即可。

 

WAR的使用

1>、生成war文件使用如下命令:jar  -cvf   web1.war *
2>、查看web1.war中都有哪些文件,可以使用命令:jar  -tf  web1.war
3>、解壓web1.war文件,可以使用命令:jar  -xvf  web1.war

另外,也可使用winrar軟件選擇zip壓縮方式,並將壓縮文件後綴名改爲war即可壓縮生成war文件;同樣使用winrar軟件可以強行打開war 文件,或者強行解壓war文件

使用jar命令與winrar軟件的區別在於前者在壓縮文件的同時會生成 META-INF 文件夾,內包含MANIFEST.MF文件。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章