Reputation:
Possible duplication (solved): https://stackoverflow.com/a/1133132/783469
I have icons (jpg, png) for my application, which is stored in my directory /var/tmp/gameXbox/src/image/<here>
. Now, How can i use them in application, without using hard link but as resource?
Example: not working
IconForMyButton = ImageIO.read(new File(
ClassLoader.getSystemResourceAsStream("image/button1.png")
));
Works when i do with hard link:
IconForMyButton = ImageIO.read(new File(
"/var/tmp/gameXbox/src/image/button1.png"
));
Upvotes: 11
Views: 48916
Reputation: 18405
Images do not go into a source folder but into a resource folder. Fix your IDE and use Maven and it will work with getResourceAsStream
with the current context classloader.
Upvotes: 0
Reputation: 72636
I usually use class.getResource for this kind of operation :
YourClass.class.getResource("image/button1.png")
i use it to retrieve the file from a jar archive but should work also to retrieve from filesystem resources.
Upvotes: 6
Reputation: 14165
Resource loading takes place in the classpath, relative to the current package.
If /var/tmp/gameXbox/src/
is in your classpath, then:
ImageIO.read( ClassLoader.getSystemResource( "image/button1.png" ) );
However, usually the src
folder is not included in the classpath by IDEs. Try adding the image to the bin
folder.
Upvotes: 16