Bootstrap classes of your JVM
/WEB-INF/classes of your web application
/WEB-INF/lib/.jar of your web application
System class loader classes (described above)
Common class loader classes (described above)
If the web application class loader is configured with then the order becomes:*
Bootstrap classes of your JVM
System class loader classes (described above)
Common class loader classes (described above)
/WEB-INF/classes of your web application
/WEB-INF/lib/.jar of your web application
绝大多数情况下,Web 应用的开发人员不需要考虑与类加载器相关的细节。下面是几条简单的原则:
每个 Web 应用自己的 Java 类文件和使用的库的 jar 包,分别放在 WEB-INF/classes和 WEB-INF/lib目录下面。
多个应用共享的 Java 类文件和 jar 包,分别放在 Web 容器指定的由所有 Web 应用共享的目录下面。
当出现找不到类的错误时,检查当前类的类加载器和当前线程的上下文类加载器是否正确。
Demo跟着博客做的一个ClassLoader小demo https://github.com/JhinQaQ/Classloader
参考资料Java虚拟机底层原理知识总结 https://github.com/doocs/jvm
tomcat7.0 ClassLoader
深入探讨Java类加载器 https://www.ibm.com/developerworks/cn/java/j-lo-classloader/
Java类加载器的使用场景有哪些?https://www.zhihu.com/question/46719811