Tomcat中jar包和class的加载顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat中jar包和class的加载顺序相关的知识,希望对你有一定的参考价值。

当我们启动一个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

以上是关于Tomcat中jar包和class的加载顺序的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat web.xml详解

ClassLoader实现自定义类加载器加载指定路径下的Class文件和Jar包

ClassLoader实现自定义类加载器加载指定路径下的Class文件和Jar包

tomcat不重启加载class

Spark依赖包加载顺序

细说tomcat之类加载器