10

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")
                  ));

enter image description here

Works when i do with hard link:

IconForMyButton = ImageIO.read(new File(
                      "/var/tmp/gameXbox/src/image/button1.png"
                  ));
Community
  • 1
  • 1
  • 2
    Make sure the images are contained in the classpath of your application, and use a relative link – Robin Dec 28 '11 at 20:35
  • What you do want to load? An image from classpath or filesystem? This is a difference. You're mixing both up. – Michael-O Dec 28 '11 at 20:57
  • @Google : Please do confirm first, You want to display this icon on your button, as your variable is suggesting. Am I right about that ? Regards – nIcE cOw Dec 28 '11 at 21:04
  • @Michael-O: from classpath (filesystem is working for me, as above). –  Dec 28 '11 at 21:04
  • possible duplicate of [Trying to load icon from jar file](http://stackoverflow.com/questions/1133066/trying-to-load-icon-from-jar-file) –  Dec 28 '11 at 21:36

3 Answers3

16

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.

Darkhogg
  • 13,707
  • 4
  • 22
  • 24
6

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.

aleroot
  • 71,077
  • 30
  • 176
  • 213
0

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.

Michael-O
  • 18,123
  • 6
  • 55
  • 121