Java/Eclipse - getClass().getResource(...) 返回 null

17 浏览
0 Comments

Java/Eclipse - getClass().getResource(...) 返回 null

当执行以下代码时,imgURL始终设置为NULL

try {
    URL imgURL = getClass().getResource("assets/image.png");
    System.out.println(imgURL);
    BufferedImage sheet = ImageIO.read(imgURL);
} catch (IOException e) {
    System.out.println("图片加载失败。");
    e.printStackTrace();
}

Assets是一个源文件夹,并且在"项目>属性>Java构建路径"下列出。我也尝试过清理项目和重新构建。此外,在"assets"之前添加"/"也不起作用,也无法满足我的需求。

这是之前在eclipse中可行的代码版本,但在可执行的Jar文件中不起作用:

BufferedImage sheet = ImageIO.read(new File("assets/image.png"));

我简单地不明白为什么imgURL首先被设置为NULL,因为在线上的主要答案是使用第一个代码块中的确切语法。这也适用于可执行的JAR文件,而我的项目将需要进行全面的测试。

非常感谢您能给出的任何帮助。

谢谢!

编辑:我的问题已经得到解决,感谢TheLostMindingrid。事实证明,当使用getClass().getResource(filename)时,我需要使用不带相对路径的文件名(assets/filename)。

0