亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

1. jar 包

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

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

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

jar 包其實(shí)就是 java 項(xiàng)目壓縮包,是通過 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 目錄          // 存放該包和擴(kuò)展的配置數(shù)據(jù)

jar 包主要用途

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

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

2. war 包

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

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

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

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

  • 代碼編譯成的 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 目錄          // 存放該包和擴(kuò)展的配置數(shù)據(jù)

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

war 包部署優(yōu)勢

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

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

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

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

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

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

在產(chǎn)品發(fā)布階段,使用 war 包比較合適,因?yàn)檫@個(gè)時(shí)候,幾乎不需要再做什么改動(dòng)了。

部署 war 包到 tomcat

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

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

3.啟動(dòng)Tomcat

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

在瀏覽器輸入

http://localhost:tomcat_port/test

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

如果需要更改配置文件:

4.關(guān)閉 tomcat。

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

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

7.更新完配置之后,啟動(dòng) tomcat。

8.瀏覽器打開即可。

3. jar 包 vs. war 包

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

SpringBoot 打包方式區(qū)別

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

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

SpringBoot 適宜打成 war 包的場景

SpringBoot 打成的 jar 包自帶 tomcat 容器,適用于單個(gè)項(xiàng)目。

但若要把多個(gè)項(xiàng)目部署到同一個(gè) tomcat 容器上,則需要分別打成 war 包。

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

    Java中的PowerMock使用實(shí)踐

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論