App下載

什么是war包?war包該怎么運行?

猿友 2021-07-06 16:50:59 瀏覽數 (47836)
反饋

很多學習 java 的小伙伴都聽過 jar 包,但未必聽說過 war 包。小編學習了兩年的 java,也是在某次期末作業(yè)中老師要求打 war 包提交作業(yè)的時候才知道有這種東西,為此還對怎么打 war 包和 war 包怎么運行困擾了許久。今天小編就來介紹一下什么是 war 包,jar 包和 war 包又有什么區(qū)別吧!

什么是 jar 包

jar 包全稱 Java Archive ,中文名叫 java 歸檔文件,這是一種與平臺無關的文件格式,它允許將許多文件組合成一個壓縮文件(是的,jar 包就是一種壓縮文件,甚至 jar 這個單詞就有罐子的意思,實際上 jar 包采用的也是 zip 的壓縮方式,只不過將文件后綴定義為 jar)。javaSE 程序可以打包成 jar 包。

 jar 包雖然使用 zip 進行壓縮和發(fā)布,但與 zip 壓縮不同,jar 文件還可以用來部署和封裝庫,組件和插件程序,而且這樣的 jar 包是可以直接被編譯器和 JVM 直接使用的。

簡單的講,zip 只是將代碼文件壓縮,打 jar 包不僅是文件壓縮,還將代碼中的類進行打包,這樣就可以讓別人直接進行引入調用了。

什么是 war 包

war 包與 jar 包是很類似的,不過 war 包通常用于網站,它是一個可以直接運行的 web 模塊。我們在開發(fā) web 項目一般都會使用一個 webapp 文件夾來進行開發(fā),這個文件夾直接放在 Tomcat 的 webapps 文件夾下就可以啟動該項目了。而 war 包,就是對這個文件夾進行打包。

 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 目錄下。

區(qū)別

使用 jar 文件的目的是把類和相關的資源封裝到壓縮的歸檔文件中以方便調用。而對于 war 文件來說,一個 war 文件就是一個 Web 應用程序。它包含 Servlet、HTML 頁面、Java 類、圖像文件,以及組成 Web 應用程序的其他資源,而不僅僅是類的歸檔文件。

簡單的來說,jar 只是類的歸檔文件,而 war 包是一個完整的 web 應用程序。

如何打 war 包

war 包的打包也是通過 jar 命令來實現的。使用如下命令即可打包

?jar cvf d:/test/myweb2.war.?

  • 其中?cvf?是命令參數,表示生成一個文檔、顯示生成過程、指定生成的文件名。
  • ?d:/test/myweb2.war? 為生成的文檔的存放路徑以及文件名。
  • 最后一個點號表示要將當前目錄中所有內容打包。

使用一些開發(fā)工具也可以打 war 包,比如 maven 項目就可以用 maven 打包。如果項目中用到了 ant,也可以用 ant 進行 war 包的輸出和部署。類似的工具還有 gradle 等等,小編就不一一介紹了。

使用 IDE 一般都會提供打包工具,它們可以簡單的打好一個 war 包(關注 W3C技術頭條,后續(xù)文章教你如何用 idea 和 eclipse 打 war 包)。

war 包怎么部署

war 包的部署是相當簡單的,只需要將 war 包放在 Tomcat 的 webapps 文件夾中,啟動 Tomcat,它就會自行解包運行相應的 web 項目。

小結

如果僅僅只是為了在本地運行一個 webapp 項目,使用 war 包好像是看不出有什么優(yōu)勢,反而每次運行都要打包顯得更麻煩了。但如果是要將項目部署在遠程的服務器上,傳輸一個 war 包和傳輸一個文件夾的區(qū)別就顯現出來了,所以學習使用 war 包對于日后從事 web 項目開發(fā)是有一定必要性的。

以上就是關于 war 包怎么運行以及 jar 包與 war 包的區(qū)別的全部內容了,更多編程小知識,關注W3C技術頭條!


0 人點贊