Java src文件夹中的Toolkit.getImage()

Java src文件夹中的Toolkit.getImage(),java,Java,我试图从包中的src/文件夹中获取图像,但是没有任何成功 nekoPics[i] = tk.getImage(getClass().getResource(String.format("resources/pracs/neko/%s", nekosrc[i]))); 有人建议吗?是否将其复制到构建代码的任何地方?如果在执行时类位于bin目录(或jar文件),则位于src目录中没有帮助 另外请注意,如果您的类位于包中,则默认情况下,class.getResource将相对于该包工作。因此,如果您

我试图从包中的src/文件夹中获取图像,但是没有任何成功

nekoPics[i] = tk.getImage(getClass().getResource(String.format("resources/pracs/neko/%s", nekosrc[i])));

有人建议吗?

是否将其复制到构建代码的任何地方?如果在执行时类位于
bin
目录(或jar文件),则位于
src
目录中没有帮助

另外请注意,如果您的类位于包中,则默认情况下,
class.getResource
将相对于该包工作。因此,如果您的包是foo.bar,它将查找
foo/bar/resources/pracs/neko/whatever
。如果要使其成为绝对值,可以使用
ClassLoader.getResource
,或者在字符串开头加一个前导的
/

String resource = String.format("/resources/pracs/neko/%s", nekosrc[i]);
nekoPics[i] = tk.getImage(getClass().getResource(resource));


当然,如果
重新使用
目录实际上是相对于您的包的,您不应该这样做:)

当您使用带有相对路径的
getClass().getResource()
时(即不以
/
开头的路径),然后,该路径将被解释为相对于用于加载资源的类的包


因此,如果您在类
mypackage.MyClass
中有该代码,那么请求
resources/pracs/neko/something
将实际尝试查找与您的类路径相关的
mypackage/resources/pracs/neko/something

非常有用,谢谢,但是类加载器如何从正确的路径获取资源呢?Java中处理图像资源的典型方式是什么?比如你把它们放在项目的什么地方?@Alex:这取决于你的构建环境——我相信有很多方法可以做到这一点。类装入器知道逻辑“根”,仅此而已。
String resource = String.format("resources/pracs/neko/%s", nekosrc[i]);
nekoPics[i] = tk.getImage(getClass().getClassLoader().getResource(resource));