java getResource()不工作
这让我快发疯了。 我在具有以下结构的文件夹中有一个NetBeans项目:java getResource()不工作,java,url,embedded-resource,Java,Url,Embedded Resource,这让我快发疯了。 我在具有以下结构的文件夹中有一个NetBeans项目: MyProject ---- build ---- src ---- resources 在src中,我的代码在包中。我想做的是使用 getClass().getResource("/resources/new.png"); 来自包com.my.package中的类,但它只是拒绝工作!“new.png”图像位于resources文件夹中。 我是不是遗漏了什么 在反复播放和移动“new.png”图像以查看何时能找到图像
MyProject
---- build
---- src
---- resources
在src中,我的代码在包中。我想做的是使用
getClass().getResource("/resources/new.png");
来自包com.my.package中的类,但它只是拒绝工作!“new.png”图像位于resources文件夹中。
我是不是遗漏了什么
在反复播放和移动“new.png”图像以查看何时能找到图像后,它终于起作用了,但只有在我将图像放入构建文件夹时才起作用。
那么我要怎么做才能让它工作呢
编辑:对不起,方法参数中的字符串错误。现在更正我不熟悉NetBeans,但问题可能是
资源
文件夹(或项目的根目录)不在类路径上,这与构建
不同
您需要配置NetBeans以将根文件夹或resources
添加到类路径,并加载与之相关的文件
另请参见此问题:这很好:
BufferedImage image = ImageIO.read(getClass().getClassLoader().getResourceAsStream("file_name"));
但是,您在哪里告诉该方法该图像位于resources文件夹中?(不是我的反对票)。请注意,资源是相对于类加载器的路径找到的。
resources
文件夹需要在类路径上结束;您是否将其列为源文件夹?它是否包含在jar的根级别?等等——如果不知道更多,就很难提供更多的帮助。不完全熟悉你所说的。如何将某些内容列为源文件夹?问题是,即使我的图像不在文件夹中,而只是在项目的根目录中,它仍然无法通过getClass().getResource(“/test.png”)找到它;项目的根可能不在类路径上,因此就类加载器而言,.png是不可见的。这确实是原因所在。我的印象是,这是自动完成的,我过去从未发生过这种情况。现在,我只需要找出如何在NetBeans项目的类路径中添加我的根:D