`

Tomcat启动时类加载顺序及运行时类载入顺序

阅读更多
Tomcat启动时类加载顺序
第一阶段:
JVM启动相关
1.$JAVA_HOME/jre/lib/ext/*.jar 
2.环境变量CLASSPATH中的*.jar和*.class

第二阶段:
TOMCAT启动相关
1.$CATALINA_HOME/common/classes/*.class 
2.$CATALINA_HOME/commons/endorsed/*.jar  
3.$CATALINA_HOME/commons/i18n/*.jar  
4.$CATALINA_HOME/common/lib/*.jar文件。  
注意:JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况 
5.$CATALINA_HOME/server/classes/*.class  
6.$CATALINA_HOME/server/lib/*.jar  
7.$CATALINA_BASE/shared/classes/*.class  
8.$CATALINA_BASE/shared/lib/*.jar

第三阶段:
CONTEXT(WEB应用)启动相关  
1.各自具体的webapp:   /WEB-INF/classes/*.class  
2.各自具体的webapp   /WEB-INF/lib/*.jar  

Tomcat运行时类载入或查找顺序

1、Tomcat自定义载入器(一般为WebappClassLoader)本地缓存及ClassLoader缓存
2、Bootstrap class loader载入(在其安全目录内)
3、Extension class loader载入(在其安全目录内,比如这里为:$JAVA_HOME/jre/lib/ext/*.jar )
4、System class loader    (在其安全目录内,比如这里为:CLASSPATH/)

注意:以上要优先主要是基于安全,避免类似自定义java.lang.Object优先于JDK的java.lang.Object被加载
5、/WEB-INF/classes/*.class   
6、/WEB-INF/lib/*.jar   
7、$CATALINA_HOME/common/classes    
8、$CATALINA_HOME/common/endorsed/*.jar    
9、$CATALINA_HOME/common/i18n/*.jar    
10、$CATALINA_HOME/common/lib/*.jar    
11、$CATALINA_BASE/shared/classes    
12、$CATALINA_BASE/shared/lib/*.jar    
1
2
分享到:
评论

相关推荐

    Tomcat启动时类加载顺序

    ### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...

    tomcat详解与启动加载顺序

    tomcat详解与启动加载顺序 tomcat详解与启动加载顺序

    Tomcat启动顺序

    总结来说,Tomcat的启动顺序是一个自底向上,从核心到应用的过程,依次加载Bootstrap、System、Common、Shared和WebApp类加载器,确保了服务的正确初始化和Web应用程序的隔离运行。理解这一启动流程对于调试、优化和...

    Tomcat7 启动类加载日志

    Tomcat7.0.62 启动类加载日志

    tomcat类加载器

    类加载器在Tomcat中扮演着至关重要的角色,因为它们负责加载并管理运行时所需的Java类。这个"DevLoader.zip"文件可能包含与Tomcat自定义类加载器相关的资料,特别是名为"DevLoader"的类加载器,这可能是Tomcat为...

    java类加载器-tomcat中的类加载器

    Java 类加载器是Java虚拟机(JVM)的核心组成部分,它负责将编译后的字节码文件(.class文件)加载到JVM中并转换为运行时的数据结构。Tomcat,作为广泛使用的Java Servlet容器,它自定义了一套类加载机制,以满足Web...

    tomcat8改了jar加载顺序的踩坑记录

    二是直接修改Tomcat的类加载策略,使其按照字母顺序加载JAR,但这可能会影响到其他应用的正确运行。 总的来说,理解Tomcat的类加载机制对于排查和解决问题至关重要。开发者应当注意,即使使用了相同版本的Tomcat和...

    Tomcat加载顺序

    ### Tomcat加载顺序详解 Apache Tomcat作为一款广泛使用的开源Servlet容器,其类加载机制是理解和维护基于Tomcat的应用程序的重要部分。Tomcat的类加载器遵循特定的加载顺序,确保了不同应用间的隔离性和资源的正确...

    Java 类在 Tomcat 中是如何加载的(过程分析)

    当Tomcat加载类时,它遵循以下顺序: - 使用Bootstrap类加载器尝试加载。 - 使用System类加载器尝试加载。 - 使用Webapp类加载器加载`WEB-INF/classes`下的类。 - 使用Webapp类加载器加载`WEB-INF/lib`中的jar...

    tomcat 类加载机制 —— ClassLoader

    1. **Bootstrap ClassLoader**:这是JVM启动时的第一个类加载器,负责加载JDK核心库(rt.jar)中的类。 2. **Extension ClassLoader**:加载JRE扩展目录(java.ext.dirs)下的JAR文件。 3. **System ClassLoader**...

    tomcat启动时,在后台自动执行一线程

    在Tomcat中,我们可以通过编写一个Servlet类并将其配置在web.xml文件中,使得在Tomcat服务器启动时自动加载并初始化这个Servlet。 要实现在Tomcat启动时自动执行的Servlet,我们需要在Servlet的`init()`方法中添加...

    web项目的启动时文件加载顺序1

    在Web开发中,理解Web项目的启动时文件加载顺序是至关重要的,因为它直接影响到应用程序的初始化和运行。本文将深入探讨这个主题,重点关注Web容器如何处理配置文件`web.xml`,以及不同组件(如`context-param`、`...

    tomcat启动原理解析

    - Tomcat使用自定义的类加载器,如`CommonClassLoader`、`CatalinaClassLoader`等,它们按照特定的层次结构加载类。 5. **初始化容器** - `Catalina`类是Tomcat的主要组件,负责管理所有Web应用。在启动过程中,...

    3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4

    3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4

    tomcat 开机启动(Apache Tomcat开机后台启动_百度经验.mht)

    tomcat 开机启动,dos窗口去掉,tomcat 开机启动,dos窗口去掉

    tomcat启动执行java自定义方法

    tomcat启动时执行java自定义方法,一般用于启动时赋值情况。

    tomcat启动管理工具

    6. **日志管理**:Tomcat的日志文件通常位于`logs`目录下,包括`catalina.out`记录服务器的启动和运行信息,以及`host-manager`和`manager`应用的日志。通过分析日志,可以诊断和解决问题。 7. **Apache-tomcat-...

    类加载器与Tomcat

    Bootstrap类加载器是JVM启动时的第一个加载器,负责加载JDK的核心类库。Tomcat使用Bootstrap类加载器,并通过指定`CATALINA_HOME/bin/bootstrap.jar`、`CATALINA_HOME/bin/tomcat-juli.jar`和`JAVA_HOME/lib/tools....

    Tomcat启动停止脚本

    启动脚本会加载Tomcat的配置文件,初始化Java环境,然后启动服务器。 二、Tomcat停止脚本 停止脚本,通常为`shutdown.sh`或`shutdown.bat`,用于优雅地关闭Tomcat服务。它发送一个特定的命令到正在运行的Tomcat进程...

    tomcat启动服务运行servlet

    标题“Tomcat启动服务运行Servlet”涉及到的是Java Web开发中的核心概念,主要涵盖Tomcat服务器的启动过程以及Servlet的执行机制。Tomcat是一款开源、免费的Web应用服务器,广泛用于部署Java Servlet和JavaServer ...

Global site tag (gtag.js) - Google Analytics