欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于jar包與war包的區(qū)別及說明

 更新時間:2024年05月20日 11:54:14   作者:Kevin騎熊貓打老虎  
這篇文章主要介紹了關(guān)于jar包與war包的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1. jar 包

JAR(Java Archive),是與平臺無關(guān)的文件格式。

它允許將多個文件組合成要給壓縮文件。

其實可以對比一下:jarrar ,j 可以理解成 java。

jar 包其實就是 java 項目壓縮包,是通過 java 程序壓縮產(chǎn)生的壓縮包。

jar 包是通過 JavaSE 程序打成的包。

jar 與 zip 異同

jar 文件格式以流行的

zip 文件格式為基礎(chǔ)。

同:jar、zip 用于壓縮和發(fā)布異:jar 還用于

  • 部署
  • 封裝庫、組件、插件程序
  • 可被編譯器、jvm 等工具直接使用

另外 jar 包還含有特殊的文件,如 manifest 和部署描述符,用來指示工具如何處理特定的 jar。

jar 包目錄結(jié)構(gòu)如下:

根目錄
   |
   |---- 該包的 java 類文件目錄
   |
   |---- META-INF 目錄          // 存放該包和擴展的配置數(shù)據(jù)

jar 包主要用途

在 jar 包中包含已經(jīng)寫好的一些類,這些類打包到一起便于存放管理。

將 jar 包引入到自己的項目中,就可以直接使用這些 jar 包中的類和屬性(從前這些 jar 包都會被扔到 lib/ 目錄下)。

2. war 包

war 包就是 web 項目壓縮包。war 是一個可以直接運行的 web 模塊,一個 war 包可以理解成就是一個 web 項目,通常用于網(wǎng)站,打成包部署到容器(如 tomcat)中。

以 Tomcat 為例,war 包放置在其\webapps\ 目錄下,然后啟動 Tomcat,這個包就會自動解壓,就相當(dāng)于發(fā)布了。

war 包是 Sun 公司提出的一種 web 應(yīng)用程序格式,與 jar 類似,也是很多文件的壓縮包。

war 包是 JavaWeb 程序打的包。,包含了項目的所有東西,包括:

  • 代碼編譯成的 class 文件
  • 依賴包
  • 配置文件
  • 網(wǎng)站頁面(html、jsp、servlet、圖片文件等)

war 包中文件按照一定目錄結(jié)構(gòu)來組織。

根目錄
   |
   |---- .html、.jsp (或包含這兩種文件的目錄)
   |
   |---- WEB-INF 目錄           // 存放 .class 文件和配置文件
   |        |
   |        |---- web.xml       // 該應(yīng)用的配置文件
   |        |
   |        |---- classes 目錄
   |        |         |
   |        |         |---- 編譯好的 servlet 類和 js
   |        |         |
   |        |         |---- servlet 所依賴的其他類(如 JavaBean)
   |        |----- lib          // 存放該包的依賴 jar 包
   |
   |---- META-INF 目錄          // 存放該包和擴展的配置數(shù)據(jù)

其中,servlet 所依賴的類也可以打包成 jar 包放在 WEB-INF 下的lib目錄下。

war 包部署優(yōu)勢

一個 Web 應(yīng)用程序的目錄和文件可能會非常多,將這個 Web 應(yīng)用程序部署到另一臺機器上,會不太方便,因此,可以將這個 Web 應(yīng)用程序打包成 Web 歸檔文件(war),過程和把 java 類文件打包成 jar 相似。

利用 war 文件,可以把 servlet 類文件和相關(guān)的資源集中在一起進行發(fā)布。

這樣一來,Web 應(yīng)用程序不再是按照目錄層次結(jié)構(gòu)來進行部署,而是把 war 文件作為部署單元來使用。

開發(fā)階段不適合使用 war 的原因

開發(fā)階段經(jīng)常需要添加或刪除 web 應(yīng)用程序的內(nèi)容、更新 Servlet 類文件,而每一次改動后,重新建立 war 包將很浪費時間。

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

在產(chǎn)品發(fā)布階段,使用 war 包比較合適,因為這個時候,幾乎不需要再做什么改動了。

部署 war 包到 tomcat

1.開發(fā)人員打 war 包給測試,現(xiàn)在測試拿到一個 war 包:test.war

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

3.啟動Tomcat

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

在瀏覽器輸入

http://localhost:tomcat_port/test

即可打開 test 項目的 index.jsp 頁面( tomcat_port 是自己的端口號)。如果 test 項目沒有 index.jsp 頁面,那就需要打開其他相應(yīng)的頁面。

如果需要更改配置文件:

4.關(guān)閉 tomcat。

5.刪除 test.war文件(因為 tomcat 啟動后會自動解壓 test.war,如果在 tomcat 啟動的狀態(tài)下去刪除 war 包,解壓好的文件夾也會被一并刪除,所以需要停止 tomcat, 然后刪掉 war 包,之后再啟動。項目文件夾就不會被認為是 war 解壓而來的)。

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

7.更新完配置之后,啟動 tomcat。

8.瀏覽器打開即可。

3. jar 包 vs. war 包

jar 包war 包
定位類的歸檔文件web 應(yīng)用程序/ Web 歸檔文件
查看內(nèi)容方式WinRaR 可以直接打開需要先把后綴名改為.rar,再用 WinRaR 打開;或者保留后綴名不變,手動選擇打開方式時,手動選出 WinRaR.exe(推薦打開方式中不能自動識別 WinRaR)
內(nèi)容java類、配置文件Servlet、html頁面、java類、圖像文件以及組成 web 應(yīng)用程序的其他資源
目錄結(jié)構(gòu)META-INF目錄:存放包和擴展的配置數(shù)據(jù),如:安全性、版本信息WEB-INF目錄:存放 .class 文件和配置文件;META-INF目錄:存放包和擴展的配置數(shù)據(jù),如:安全性、版本信息
應(yīng)用部署、封裝庫、組件和插件程序部署/發(fā)布
部署項目區(qū)別SpringBoot項目(因為SpringBoot 內(nèi)置了 tomcat)Spring項目

SpringBoot 打包方式區(qū)別

其實 SpringBoot 項目既可以打成 jar 包,也可以打成 war 包發(fā)布。

打成 jar 包打成 war 包
運行直接通過內(nèi)置 tomcat 運行需要安裝 tomcat(可以靈活選擇 tomcat 版本),然后將 war 包放到 tomcat 的 webapps/ 目錄下
tomcat 配置變更在 SpringBoot 的配置文件中設(shè)置直接對 tomcat 配置修改
日志內(nèi)置 tomcat 沒有日志輸出,得靠 jar 包應(yīng)用輸出日志tomcat 有自己的日志輸出

SpringBoot 適宜打成 war 包的場景

SpringBoot 打成的 jar 包自帶 tomcat 容器,適用于單個項目。

但若要把多個項目部署到同一個 tomcat 容器上,則需要分別打成 war 包。

再將多個 war 包部署到同一個 tomcat 容器上,以達到節(jié)省資源目的。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Activiti如何動態(tài)獲取流程圖過程詳解

    Activiti如何動態(tài)獲取流程圖過程詳解

    這篇文章主要介紹了Activiti如何動態(tài)獲取流程圖過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Spring循環(huán)依賴的處理方法

    Spring循環(huán)依賴的處理方法

    循環(huán)依賴是指兩個或多個組件之間相互依賴,形成一個閉環(huán),從而導(dǎo)致這些組件無法正確地被初始化或加載,這篇文章主要介紹了Spring循環(huán)依賴的處理,需要的朋友可以參考下
    2023-08-08
  • 使用Spring注解@EventListener實現(xiàn)監(jiān)聽原理

    使用Spring注解@EventListener實現(xiàn)監(jiān)聽原理

    這篇文章主要介紹了使用Spring注解@EventListener實現(xiàn)監(jiān)聽原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java中的PowerMock使用實踐

    Java中的PowerMock使用實踐

    這篇文章主要介紹了Java中的PowerMock使用實踐,@PrepareForTest和@RunWith是成對出現(xiàn)的,一般@RunWith(PowerMockRunner.class),@PrepareForTest的值是引用的靜態(tài)方法或私有方法的類,需要的朋友可以參考下
    2023-12-12
  • Java8中forEach語句循環(huán)一個List和Map

    Java8中forEach語句循環(huán)一個List和Map

    這篇文章主要給大家介紹了關(guān)于Java8中forEach語句循環(huán)一個List和Map的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java實現(xiàn)驗證碼具體代碼

    Java實現(xiàn)驗證碼具體代碼

    這篇文章主要介紹了Java實現(xiàn)驗證碼具體代碼,有需要的朋友可以參考一下
    2013-12-12
  • Java微信授權(quán)登錄小程序接口流程

    Java微信授權(quán)登錄小程序接口流程

    微信授權(quán)登錄小程序的流程是一個涉及前端和后端交互的過程,主要目的是讓用戶能夠使用微信賬號快速登錄小程序,避免重復(fù)輸入用戶名和密碼,下面給大家介紹Java微信授權(quán)登錄小程序接口流程,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 關(guān)于MyBatis通用Mapper@Table注解使用的注意點

    關(guān)于MyBatis通用Mapper@Table注解使用的注意點

    這篇文章主要介紹了關(guān)于MyBatis通用Mapper@Table注解使用的注意點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • mybatisPlus 實體類與數(shù)據(jù)庫表映射關(guān)系詳解

    mybatisPlus 實體類與數(shù)據(jù)庫表映射關(guān)系詳解

    這篇文章主要介紹了mybatisPlus 實體類與數(shù)據(jù)庫表映射關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • java的springboot實現(xiàn)將base64編碼轉(zhuǎn)換pdf

    java的springboot實現(xiàn)將base64編碼轉(zhuǎn)換pdf

    在Spring Boot中,將Base64編碼的字符串轉(zhuǎn)換為PDF文件并導(dǎo)出到客戶端,通常涉及幾個步驟:首先將Base64字符串解碼為字節(jié)數(shù)組,然后使用這些字節(jié)數(shù)據(jù)來創(chuàng)建PDF文件,并最終通過HTTP響應(yīng)將其發(fā)送給客戶端
    2024-08-08

最新評論