JVM中ClassLoader的学习 (2)

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsxzd.html