【轉(zhuǎn)】tomcat中class和jar的加載順序
Posted on 2012-11-22 12:03 小胡子 閱讀(1355) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): Web 服務(wù)器當(dāng)我們啟動(dòng)一個(gè)tomcat的服務(wù)的時(shí)候,jar包和claess文件是是以怎么樣的順序被加載進(jìn)來(lái)的?
加載順序:
1. $java_home/lib 目錄下的java核心api
2. $java_home/lib/ext 目錄下的java擴(kuò)展jar包
3. java -classpath/-Djava.class.path所指的目錄下的類(lèi)與jar包
4. $CATALINA_HOME/common目錄下按照文件夾的順序從上往下依次加載
5. $CATALINA_HOME/server目錄下按照文件夾的順序從上往下依次加載
6. $CATALINA_BASE/shared目錄下按照文件夾的順序從上往下依次加載
7. 我們的項(xiàng)目路徑/WEB-INF/classes下的class文件
8. 我們的項(xiàng)目路徑/WEB-INF/lib下的jar文件
在同一個(gè)文件夾下,jar包是按順序從上到下依次加載
由ClassLoader的雙親委托模式加載機(jī)制我們可以知道,假設(shè)兩個(gè)包名和類(lèi)名完全相同的class文件不再同一個(gè)jar包,如果一個(gè)class文件已經(jīng)被加載java虛擬機(jī)里了,那么后面的相同的class文件就不會(huì)被加載了。
http://xiaomogui.iteye.com/blog/847686