Java加载资源Class.class.getResource vs <classname>.class.getResource

标签 java resources resourcebundle classloader

两者有什么区别?

我的资源文件打包在根级包中。在我测试的特定情况下,调用 Class.class.getResource("/rec.txt") 似乎有效。但是,当我尝试在更大的环境 (hadoop) 中将此 jar 用作依赖项时,它不起作用(返回 null )。但是,将“类”更改为代码中的任何特定类可以修复它。有人可以扔一些灯。

最佳答案

发生这种情况的原因是 getResource 的工作方式。它实质上将调用委托(delegate)给 <classname> 的类加载器。正如您在问题中所说的那样。

Class 对象可能由企业应用程序中的引导类加载器加载,而您的类 <classname>由不同的类加载器加载。

关于Java加载资源Class.class.getResource vs <classname>.class.getResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823597/

相关文章:

java - 在 Java 中,我如何找出我的资源包可用的语言

spring - Tomcat 中未拾取外部化的 message.properties 文件

java - 如何使用具有多对多关系的两个表在 Java Mapreduce 上执行 reduce side join?

java - 如何使用共享首选项保存数据?

wpf - UriFormatException : Invalid URI: Invalid port specified

Android 资源转换为字符串 TypedValue 警告

Java:如何在属性文件中写入 "Arabic"?

Java 程序从 Excel 文件读取数据抛出错误..需要帮助解决

java - Spring Web Flow...如何仅在一次转换上停止表单验证

iphone - Xcode 不会释放资源文件