JavaプログラミングTIPS
パッケージ空間内に例えばroot.imagesというパッケージを作って、その中に画像ファイルを置いたときにファイル空間によらず、パッケージ空間のみからファイルを取得する方法です。
具体的にはClass#getResource()もしくはClass#getResourceAsStream()メソッドを用います。
前者はリソースへのURLを後者はInputStreamを返します。時と場合によって使い分けて下さい。
このとき、引数の与え方は2種類、完全修飾名と、相対修飾名が選べます。
完全修飾名の場合は、ファイルをパッケージ名を全て含めて書きます。このとき、必ずルートに「/」をつけて、またパッケージの区切り文字を「/」にして下さい。例えば先ほどのパッケージにhogehoge.jpgがあったなら、
/root/images/hogehoge.jpg
になります。相対の場合は頭の「/」をとって、相対位置で書いてあげて下さい。
最後に具体的な使い方ですけど、二つのメソッドはstaticではありませんので、Classオブジェクトをゲットする必要があります。けど、ここであわてて新規に生成しないように。
ちゃんと、Object#getClass()を使いましょうね。
以上。