我正在使用apache felix osgi。当我使用classLoader.loadClass(..)
加载类时,它给出了ClassNotFoundException
但是当我使用Class.forName()
加载类时,它工作正常。
使用classLoader.loadClass()
会产生什么区别?为什么我们只需要使用Class.forName()
或如何正确使用classLoader.loadClass()
?
最佳答案
另外提示:由于您已获得异常,因此可能通过调用classLoader
获得了称为Thread.currentThread().getContextClassLoader()
的类加载器。在OSGi环境中,它可能是最差的类加载器,因为它绝对是未定义的。加载可能一次失败,另一次成功,从而导致难以发现的问题。
关于java - osgi框架中的class.forName()和classLoader.loadClass()有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20238536/