我用来加载图像的代码是:
ImageIO.read(SpriteSheet.class.getResource(path));
路径是资源的路径。但它会与IllegalArgumentException
. 我想知道可能是什么原因造成的,并得出结论,应该将资源添加到与类相同的路径中。
是否可以从另一个文件夹加载图像,例如 bin 文件夹之外的 res 文件夹?(保存已编译类的文件夹)
编辑:所以我搞砸了一些事情,并找到了解决方案。但现在我有另一个问题。这是我的代码
File sheet = new File(SpriteSheet.class.getProtectionDomain().getCodeSource().getLocation().getPath());
URI uri = sheet.toURI();
BufferedImage image = ImageIO.read(uri.toURL());
当我尝试运行它时,它给了我一个IIOException: Can't read Input File
这意味着我永远无法真正让它工作。我尝试通过将 URL 打印到控制台来进行调试,这就是 URL。
C:\Users\Amma\Abhijeet\Eclipse%20Workspace1\Test%20Game\bin
出现%20
在中间。这意味着该文件是并且永远不能被访问。无论如何我可以解决这个问题吗?
谢谢。