javaEE环境下ClassLoader.getSystemClassLoader加载类异常

ClassLoader.getSystemClassLoader方法无论何时均会返回ApplicationClassLoader,其只加载classpath下的class文件。

在javaSE环境下,一般javaSE项目的classpath为bin/目录,因此只要编译后的class文件在classpath下就可以。此时ApplicationClassLoader就可以加载动态生成的类。

但在javaEE环境下,我们的项目里的类是通过WebAppClassLoader类来加载的,此时我们获取了ApplicationClassLoader,因此自然找不到class文件。

因此我们可以使用Thread.currentThread().getContextClassLoader()来获取WebAppClassLoader来加载,就不会报错了。

原文地址:https://www.cnblogs.com/cyh1282656849/p/14498800.html