tomcat中class和jar的載入順序
阿新 • • 發佈:2019-02-06
當我們啟動一個tomcat的服務的時候,jar包和claess檔案是是以怎麼樣的順序被載入進來的?
載入順序:
1. $java_home/lib 目錄下的java核心api
2. $java_home/lib/ext 目錄下的java擴充套件jar包
3. java -classpath/-Djava.class.path所指的目錄下的類與jar包
4. $CATALINA_HOME/common目錄下按照資料夾的順序從上往下依次載入
5. $CATALINA_HOME/server目錄下按照資料夾的順序從上往下依次載入
6. $CATALINA_BASE/shared目錄下按照資料夾的順序從上往下依次載入
7. 我們的專案路徑/WEB-INF/classes下的class檔案
8. 我們的專案路徑/WEB-INF/lib下的jar檔案
在同一個資料夾下,jar包是按順序從上到下依次載入
由ClassLoader的雙親委託模式載入機制我們可以知道,假設兩個包名和類名完全相同的class檔案不再同一個jar包,如果一個class檔案已經被載入java虛擬機器裡了,那麼後面的相同的class檔案就不會被載入了。
原文:http://xiaomogui.iteye.com/blog/847686
參考
http://huangrongyou.iteye.com/blog/1562019
- Java虛擬機器類載入順序 詳細說明ClassLoader的載入順序和原理