【问题标题】:Java: NullpointerException when loading image-url from resourcesJava:从资源加载图像 url 时出现 NullpointerException
【发布时间】:2021-07-03 00:35:21
【问题描述】:

我是编程新手,在尝试从项目的资源包中加载图像 URL 时偶然发现了一个问题。

这是我试图从中加载的文件路径: ./src/main/resources/minesweeper/foggedTile.png

public Image setFoggedFrontImage() {
    ClassLoader classLoader = getClass().getClassLoader();
    String path = classLoader.getResource("foggedTile.png").getPath();
    Image NewGameFrontImage = new Image(path);
    this.frontImage = NewGameFrontImage;
    return NewGameFrontImage;
    }

当我尝试运行此代码时,出现以下错误:

Caused by: java.lang.NullPointerException: Cannot invoke "java.net.URL.getPath()" 
because the return value of "java.lang.ClassLoader.getResource(String)" is null

【问题讨论】:

    标签: java image url nullpointerexception resources


    【解决方案1】:

    添加resources之后开始的完整路径:

    String path = classLoader.getResource("/minesweeper/foggedTile.png").getPath();
    

    如果您只添加图像的文件名,java 会查找与您的类所在的路径相同的路径,并且看起来该类不在名为 minesweeper 的包中

    【讨论】:

    • 其实你的解释只对了一半。在处理相对路径时,使用Class.getResource查看相同的路径。另一方面,ClassLoader.getResource 总是使用类路径(或者被相应的类加载器认为是类路径)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 2012-06-19
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多