ImageIO.read getResource错误

时间:2017-05-27 12:43:00

标签: java javax.imageio

我遇到了一个奇怪的问题。这是我的代码片段:

...
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)

这是一个文件结构:

enter image description here

如您所见,res文件夹位于src文件夹的根目录下。我已经阅读了很多类似的问题,但没有任何帮助。

2 个答案:

答案 0 :(得分:1)

为了getResource找到一个文件,相应的文件夹(本例中为res)需要在classpath中。如果它不在类路径中,则InputStream返回的getResource始终为null

Here's如何将文件夹添加到classpath

答案 1 :(得分:0)

您的通话.getResource("/images/...")未成功,并返回null。因此,您致电ImageIO.read(null)并获得了IllegalArgumentException

找到位于res文件夹中的资源 通过...getResource(...),您需要使res成为Eclipse项目的源文件夹。 要实现此目的:右键单击您的res文件夹,在弹出菜单中选择 Build path - > Use as Source Folder

screenshot

你会注意到

  • res将显示与src文件夹相同的图标。
  • res将添加到项目的.classpath文件中。