へっぽこ技術ブログです

【覚書】jarファイルで画像などのリソースを扱う方法

JavaJavaFXなアプリを作っていて、開発環境上(IntelliJ IDEA)で動かしていた時は表示されていた画像(Imageオブジェクト)が、jarを生成して動かすと表示されないという事態に遭遇した。

ググったら割とポピュラーなことらしかった。以下、対処方法。

今までは

image = new Image(Paths.get("hogehoge.png").toUri().toString());

みたいに記述していたところを、

 

image = new Image(getClass().getResourceAsStream("hogehoge.png"));

と記述し直した。

画像ファイルはソースファイルと同じ場所に置く。

 

ちなみに、画像ファイルを IntelliJ IDEA の Projectエクスプローラで表示されている src ディレクトリの下に置いた状態で試して「動かない〜!」と悩んでいた。ソースファイルのあるところ、つまりパッケージのディレクトリ下に置かないとダメです。恥ずかしい〜。