jarから実行とEclipseで実行でリソースパスが違う?
画像ファイルなんかを扱うときの話.
Eclipseでプロジェクト直下にresourcesフォルダを作って,そこに画像ファイルを置いていたとします.
普通にEclipseから実行する分には,次のような感じでいける.
Image image = new ImageIcon("resources/hoge.gif").getImage();
なんだけど,jarファイルにExportしてコマンドプロンプトとか別のところで実行してみると,どうやらファイルが見つからないらしい.
で,jarファイルで実行する場合は,次のようにする.
URL url = this.getClass().getClassLoader().getResource("resouorces/hoge.gif"); Image image = new ImageIcon(url).getImage();
いやはや,解決,解決.よかった,よかった.かと思ったら,今度はEclipseでうまく動かない.urlがnullになってしまう.
結局,ようわからんので次のような感じにしたけど,他に何とかなるもんかな.
String imageFileName = "resources/hoge.gif"; URL imageUrl = this.getClass().getClassLoader().getResource(imageFileName); Image image = (imageUrl != null) ? new ImageIcon(imageUrl).getImage() : new ImageIcon(imageFileName).getImage();
こちらを参考にしましたよ.
http://www.northvan.jp/?p=17