Get a resource using getResource()

2020-01-22 12:17发布

I need to get a resource image file in a java project. What I'm doing is:

URL url = TestGameTable.class.getClass().
          getClassLoader().getResource("unibo.lsb.res/dice.jpg");

The directory structure is the following:

unibo/
  lsb/
    res/
      dice.jpg
    test/
    ..../ /* other packages */

The fact is that I always get as the file doesn't exist. I have tried many different paths, but I couldn't solve the issue. Any hint?

4条回答
戒情不戒烟
2楼-- · 2020-01-22 12:48

One thing to keep in mind is that the relevant path here is the path relative to the file system location of your class... in your case TestGameTable.class. It is not related to the location of the TestGameTable.java file.
I left a more detailed answer here... where is resource actually located

查看更多
迷人小祖宗
3楼-- · 2020-01-22 12:53

Instead of explicitly writing the class name you could use

this.getClass().getResource("/unibo/lsb/res/dice.jpg");
查看更多
\"骚年 ilove
4楼-- · 2020-01-22 12:58

if you are calling from static method, use :

TestGameTable.class.getClassLoader().getResource("dice.jpg");
查看更多
戒情不戒烟
5楼-- · 2020-01-22 13:03
TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
  • leading slash to denote the root of the classpath
  • slashes instead of dots in the path
  • you can call getResource() directly on the class.
查看更多
登录 后发表回答