1

我有一个 NetBeans 项目。在项目目录中,我创建了一些额外的目录来保存资源(图像)。所以我的一张图片的路径是“/res/imgs/on.png”(“res”,其中的所有内容都是由我创建的)。然后我将“res”目录添加到我的项目源中(在 NetBeans 中右键单击我的项目 -> 属性 -> 源 -> 添加文件夹(对于源包文件夹部分))。我已经使用以下代码访问了我的项目中图像的 URL:

URL url = Class.class.getResource("/imgs/on.png");

这很成功——就在几天前。今天,在这段代码执行之后,url 变量被设置为 null。但是当代码被修改成这样时:

URL url = Class.class.getResource("/imgs");

(url != null) 是真的。

接下来,我创建了另一个项目,在那里我完成了完全相同的操作(即,在项目文件夹中创建子目录,将一些文件加载​​到其中并尝试执行代码,类似于我写的这些以上)。这些操作是成功的。之后,我回到了我的第一个项目(当尝试访问“/imgs/on.png”时,将 url 初始化为 null)。事实证明,那里一切正常,并且图像的 URL 已成功加载...

所以,问题是,问题出在哪里?这是一个 NetBeans 错误,还是我做错了什么?

4

1 回答 1

2

可能由于某些 Netbeans 编译/清理故障,“on.png”不在类目录中,因此在类路径中找不到。在重新启动或任何会导致 Netbeans 重新扫描源文件夹的操作之后,它又回到了那里。

顺便说一句,Class.class.getResource()您应该使用调用者的类,例如this.getClass().getResource()使用相同的类加载器。

于 2013-02-09T13:26:07.073 回答