我的应用程序有图标(jpg,png),存储在我的目录/var/tmp/gameXbox/src/image/<here>
中。现在,我如何在应用程序中使用它们,而不使用硬链接作为资源?
示例:无法正常工作
IconForMyButton = ImageIO.read(new File(
ClassLoader.getSystemResourceAsStream("image/button1.png")
));
当我使用硬链接时工作:
IconForMyButton = ImageIO.read(new File(
"/var/tmp/gameXbox/src/image/button1.png"
));
答案 0 :(得分:11)
资源加载发生在类路径中,相对于当前包。
如果您的类路径中有/var/tmp/gameXbox/src/
,那么:
ImageIO.read( ClassLoader.getSystemResource( "image/button1.png" ) );
但是,IDE通常会在类路径中包含{em> <{1}}文件夹。尝试将图像添加到src
文件夹。
答案 1 :(得分:4)
我通常使用class.getResource进行这种操作:
YourClass.class.getResource("image/button1.png")
我使用它从jar存档中检索文件,但也应该从文件系统资源中检索。
答案 2 :(得分:0)
图片不会进入源文件夹,而是进入资源文件夹。修复您的IDE并使用Maven,它将与getResourceAsStream
一起使用当前的上下文类加载器。