ImageIO.read(getClass().getResource("imagepath")) 中 getclass() 的实际目的是啥 [重复]

Posted

技术标签:

【中文标题】ImageIO.read(getClass().getResource("imagepath")) 中 getclass() 的实际目的是啥 [重复]【英文标题】:What is actual purpose of getclass() in ImageIO.read(getClass().getResource("imagepath")) [duplicate]ImageIO.read(getClass().getResource("imagepath")) 中 getclass() 的实际目的是什么 [重复] 【发布时间】:2018-02-12 18:53:14 【问题描述】:

我正在通过 ImageIO,我在网上阅读了这段代码,但无法弄清楚为什么在这种情况下需要 getClass()。 (据我所知,getClass() 返回类名-> 如果我错了,请纠正我)。那么,为什么我们需要 getClass() 呢?

【问题讨论】:

好吧,你错了。它没有得到类名,它得到类object。您需要一个类对象或类加载器对象来获取资源。 【参考方案1】:

Class<?> 对象的.getResource() 方法(这是任何.getClass() 调用将返回的)最终调用正在运行的JVM 的ClassLoader;而您需要ClassLoader 才能访问正在运行的类路径中的资源。

这记录在the relevant javadoc:

查找具有给定名称的资源。搜索与给定类关联的资源的规则由该类的定义类加载器实现。

【讨论】:

以上是关于ImageIO.read(getClass().getResource("imagepath")) 中 getclass() 的实际目的是啥 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ImageIO.read() 返回 403 错误

ImageIO.read() 返回 null

Java-imgFromJar

无法使用 ImageIO.read(文件文件)读取 JPEG 图像

使用 ImageIO.read 的问题

Java压缩图片ImageIO.read()报错