java - 为什么 Class.class.getResourceAsStream(String) 总是返回 null?

标签 java

我尝试获取.png来 self 的类​​路径内部的图像 .jar文件,这样就不会依赖于单独的 resource .jar 旁边的文件夹。我尝试在 Class.class.getResourceAsStream(String) 的帮助下做到这一点方法。然而,即使在确保.png的路径之后图像有效,该方法仍然返回 null 。文件的路径是:

source/org/linear/blank.png

该软件包还包含两个与我的项目相关的附加文件:Application类和 Console界面。

最佳答案

由于Class类是由引导类加载器加载的,Java文档说

If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream

此方法会在 resources 文件夹中查找资源。

因此,要使您的代码正常工作,您有两种选择:

1) 使用您的类之一,例如 Application,而不是 Class。在这种情况下,资源路径相对于 Application 类的位置进行解析:

Application.class.getResourceAsStream("/blank.png")

2) 将您的图像放入资源文件夹中,在这种情况下 getSystemResourceAsStream 也会找到它:

Class.class.getResourceAsStream("/blank.png")

关于java - 为什么 Class.class.getResourceAsStream(String) 总是返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48631232/

相关文章:

java - 多处理器编程类(class)反馈

java - 在 Java 中每秒重复访问数组项

java - HTTP 状态 500 - 由 DeploymentDescriptorLoadException 引起的实例化 servlet 类时出错

java - 通常的 Twitt_Sharing 类给出错误

java - spring boot 按参数或路径变量排序

java - 如何重新创建或重置缓存的 Observable,与 Retrofit 一起使用以获取新数据?

java - 使用和不使用 volatile 的实现

java - 在Android上与USB设备通信

java - 须藤: effective uid is not 0 when running under tomcat service

java - 如何在使用比较器接口(interface)时获取矩形对象的数组列表以显示每个矩形的面积