web-dev-qa-db-ja.com

getResource()を使用してリソースを取得します

Javaプロジェクトでリソースイメージファイルを取得する必要があります。私がやっていることは:

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

ディレクトリ構造は次のとおりです。

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

実際には、ファイルが存在しないので、私は常に取得します。さまざまな方法を試しましたが、問題を解決できませんでした。ヒントはありますか?

57
lbedogni
_TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
_
  • クラスパスのルートを示す先頭のスラッシュ
  • パス内のドットの代わりにスラッシュ
  • クラスで直接getResource()を呼び出すことができます。
101
Bozho

クラス名を明示的に記述する代わりに、使用できます

this.getClass().getResource("/unibo/lsb/res/dice.jpg");
13
arush436

staticメソッドから呼び出す場合は、次を使用します。

TestGameTable.class.getClassLoader().getResource("dice.jpg");
3
Binoy Babu

覚えておくべき1つのことは、ここで関連するパスはクラスのファイルシステムの場所に相対的なパスであるということです...あなたの場合はTestGameTable。class。 TestGameTable。Javaファイルの場所とは関係ありません。
詳細な回答をここに残しました... 実際にリソースが配置されている場所

2
J.E.Tkaczyk