ImageIO.read 获取资源错误
ImageIO.read getResource error
我遇到了一个奇怪的问题。这是我的代码片段:
...
public xProgressBar(xTheme theme) {
try {
this.update = ImageIO.read(xTheme.class.getResource("/images/" + xThemeSettings.PROGRESSBAR_IMAGES[0]));
}
...
当我 运行 一个程序时,我收到以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
这是一个文件结构:
如您所见,res
文件夹与 src
文件夹位于根目录下。我已经阅读了很多类似的问题,但没有任何帮助。
为了 getResource
找到文件,相应的文件夹(在本例中为 res
)需要位于 classpath
中。如果它不在类路径中,getResource
返回的 InputStream
将始终是 null
.
Here's 如何将文件夹添加到 classpath
.
您的调用 .getResource("/images/...")
没有成功并返回 null
。因此你打电话给 ImageIO.read(null)
并得到一个 IllegalArgumentException
.
您的资源位于 res
文件夹中
通过 ...getResource(...)
,您需要将 res
设为 Eclipse 项目的源文件夹。
为此:在弹出菜单 select 中右键单击您的 res
文件夹
Build path
-> Use as Source Folder
.
到时候你会注意到
res
将显示与您的 src
文件夹相同的图标。
res
将添加到项目的 .classpath
文件中。
我遇到了一个奇怪的问题。这是我的代码片段:
...
public xProgressBar(xTheme theme) {
try {
this.update = ImageIO.read(xTheme.class.getResource("/images/" + xThemeSettings.PROGRESSBAR_IMAGES[0]));
}
...
当我 运行 一个程序时,我收到以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
这是一个文件结构:
如您所见,res
文件夹与 src
文件夹位于根目录下。我已经阅读了很多类似的问题,但没有任何帮助。
为了 getResource
找到文件,相应的文件夹(在本例中为 res
)需要位于 classpath
中。如果它不在类路径中,getResource
返回的 InputStream
将始终是 null
.
Here's 如何将文件夹添加到 classpath
.
您的调用 .getResource("/images/...")
没有成功并返回 null
。因此你打电话给 ImageIO.read(null)
并得到一个 IllegalArgumentException
.
您的资源位于 res
文件夹中
通过 ...getResource(...)
,您需要将 res
设为 Eclipse 项目的源文件夹。
为此:在弹出菜单 select 中右键单击您的 res
文件夹
Build path
-> Use as Source Folder
.
到时候你会注意到
res
将显示与您的src
文件夹相同的图标。res
将添加到项目的.classpath
文件中。