There are many ways to load resource file in java app. What sun recommended is using Class.getResource("resource_name") or Class.getResourceAsStream("resource_name") then you will get URL and InputStream respectively. If resource_name is specified without "/", it will be prepend with Class package. So resource file must be in same place[folder structure] as the Class. What I love to do is call getResource() with "/" and put resource file at the root of package. This way i can have separate resource folder. below is in Eclipse,
1. From Package explorer right click src folder->click import
2. In import dialog, Choose General->File System ->next
3. from directory:->Browse to your resource folder.
4. to folder:-> I add "resource" as a folder name under src folder. then click "Finish".
In the code, load resource with
1. From Package explorer right click src folder->click import
2. In import dialog, Choose General->File System ->next
3. from directory:->Browse to your resource folder.
4. to folder:-> I add "resource" as a folder name under src folder. then click "Finish".
In the code, load resource with
this.getClass().getResource("/resource/buttons1.png")
or
this.getClass().getResourceAsStream("/resource/TX_Jello2.ttf")
Comments
you've saved my time ;)
Could you maybe explain the difference to the ClassLoader.getSystemResource(..) function? I could not find comprehensive help on this topic and it looks like resource loading is a very often encountered problem.
Could you please explain me how to copy a resource to a directory in the computer?
thank you!
Instead of using "/resource/filename" I'd put files in my main pachage folder, and just use a class in there to call getResource().
This way we avoid conflicts with other libs!