Coverity Tool抛出:在空对象java.lang.ClassLoader.getSystemClassLoader()

时间:2020-07-08 13:42:51

标签: java servlets classloader

我们的旧项目正在使用ClassLoader.getSystemClassLoader().getResource("some resource")来查找一些URL。 现在Coverity在ClassLoader.getSystemClassLoader()上抛出错误,说它可以为null。 现在,在查看getSystemClassLoader()的代码后,在某些情况下,它看起来可能为null。而且了解它可以为null的原因变得越来越复杂。

我的问题是,如果应用程序已成功启动并且已启动并正在运行,那么仍有可能ClassLoader.getSystemClassLoader()可以为null。 Bcoz这种方法似乎是用来启动Java应用程序的。

可以有人简单地定义使用此方法。我无法完全理解Java文档。

1 个答案:

答案 0 :(得分:1)

要从系统类加载器中获取资源,请使用getSystemResource(String name)

因此,请如下更改代码:

// Before
ClassLoader.getSystemClassLoader().getResource("some resource")

// After
ClassLoader.getSystemResource("some resource")