gpt4 book ai didi

java - getClassLoader().getResource() 返回 null

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:40 26 4
gpt4 key购买 nike

我有这个测试应用:

import java.applet.*;
import java.awt.*;
import java.net.URL;
public class Test extends Applet
{

public void init()
{
URL some=Test.class.getClass().getClassLoader().getResource("/assets/pacman.png");
System.out.println(some.toString());
System.out.println(some.getFile());
System.out.println(some.getPath());

}
}

当我从 Eclipse 运行它时,出现错误:

java.lang.NullPointerException
at Test.init(Test.java:9)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

类路径(来自 .CLASSPATH 文件)

<classpathentry kind="src" path="src"/>

在我的 c:\project\src 文件夹中,我只有 Test.java 文件和包含 pacman.png 的“assets”目录。

我做错了什么以及如何解决?

最佳答案

ClassLoader 获取资源时不需要开头的斜杠,因为不知道从“相对”部分开始。只有在从 Class 获取资源时才需要它相对路径从类的包级别开始。

另外,你不想要Test.class.getClass()因为它得到了 of Test.class 类,它将是 Class<Class> .

换句话说,尝试以下任一行:

URL viaClass=Test.class.getResource("/assets/pacman.png");
URL viaLoader=Test.class.getClassLoader().getResource("assets/pacman.png");

关于java - getClassLoader().getResource() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/625687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com