71

我需要在 java 项目中获取资源图像文件。我正在做的是:

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

目录结构如下:

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

事实是我总是因为文件不存在而得到。我尝试了许多不同的路径,但我无法解决问题。有什么提示吗?

4

4 回答 4

121
TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
  • 前导斜杠表示类路径的根
  • 斜线而不是路径中的点
  • 你可以getResource()直接在课堂上打电话。
于 2010-04-07T14:17:35.413 回答
18

您可以使用而不是显式编写类名

this.getClass().getResource("/unibo/lsb/res/dice.jpg");
于 2015-04-29T11:24:47.360 回答
8

如果您从static方法调用,请使用:

TestGameTable.class.getClassLoader().getResource("dice.jpg");
于 2015-07-19T01:17:24.127 回答
2

要记住的一件事是,这里的相关路径是相对于你的类的文件系统位置的路径......在你的例子中是 TestGameTable。。它与 TestGameTable 的位置无关。java文件。
我在这里留下了更详细的答案...... 资源实际位于哪里

于 2017-01-21T17:00:18.217 回答