java - MyClass.class.getClassLoader().getResource ("").getPath() 抛出 NullPointerException

标签 java classloader

我的代码在开发计算机上正确运行,但在生产环境中安装时抛出 NullPointerException。抛出异常的行如下:

MyClass.class.getClassLoader().getResource("").getPath();

因此,我将其分成多行代码,以准确查看哪个调用返回 null,如下所示:

ClassLoader cl = MyClass.class.getClassLoader();
URL url = cl.getResource("");
String path = url.getPath();

现在 url.getPath() 调用抛出 NullPointerException,这意味着 cl.getResource("") 返回 null。

谁能告诉我这个调用如何返回 null?

最佳答案

对于不同的ClassLoader实现,getResource的实现是不同的。

虽然这可能在您的本地计算机上可靠地工作,但不能保证在其他类加载器实现上成功。

因此,预计其他类加载器的行为会有所不同(特别是如果您在应用程序服务器、WebStart 启动器或任何具有某些安全限制的环境中执行该代码)。

关于java - MyClass.class.getClassLoader().getResource ("").getPath() 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19314531/

相关文章:

java - 在 ant 的 java 任务调用之间保留静态字段

java - IBM Semeru和Adoptium有什么区别

java - 如何使用 Java 循环浏览 IBM Notes (NotesView) View 中的所有文档

java - 在 Java 中将数组均匀截断到给定的长度限制

java - 检查映射键是否大于值

jpa - 在 OSGi 环境中,类路径和类加载器是如何设置的?

class - 如何从 gradle 中的自定义配置创建 ClassLoader?

c# - 使用什么库进行 XML SOAP 调度

java - 是否可以在运行时使用 Java 切换类版本?

java - Apache Commons JCI ReloadingClassLoader