我尝试获取.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/