java.lang.IllegalArgumentException:输入 == null!使用 ImageIO.read 将图像加载为 bufferedImage 时

新手上路,请多包涵

这个问题在这个网站上被问了 100 次,但我已经查看了所有这些问题,即使它们都已解决,但没有一个解决方案对我有用。

这是我的代码的样子:

 public Button1(Client client, String imgName) {
    this.client = client;

    try {
        this.icon = ImageIO.read(this.getClass().getResourceAsStream("/resources/" + imgName));
    } catch (IOException e) {
        e.printStackTrace();
    }

代码运行时会导致以下错误:

 Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)

字符串 imgName 从子类传递到构造函数,是图像的名称(例如 image.png)。我还确保我的资源文件夹位于项目文件夹的根目录中,并作为源文件夹包含在 eclipse 项目中。我还确保 System.getProperty("user.dir") 指向正确的位置。我也尝试过使用 getResource() 而不是 getResourceAsStream(),但它仍然不起作用。

原文由 tyler 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

尝试使用这个:-

 this.icon = ImageIO.read(new FileInputStream("res/test.txt"));

其中 res 文件夹与您的 src 文件夹处于同一级别。此外,如果您注意到,斜杠 / 文件夹名称之前的 res 已被删除。

原文由 Rahul 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题