Eclipseとjarファイルで共通的にリソースを扱う

javaアプリケーションの開発において、jarファイルにアプリ内から利用するリソース(画像等)を格納し、eclipseでの開発時でも前記リソースを同じコードで扱う。

1. リソースフォルダの作成

プロジェクトディレクトリ配下にリソース格納用のディレクトリーを作成

toplain ----- src
          |-- res(リソース格納用ディレクトリ)

 

2. ソースコード内からリソースを参照する

getClass().getClassLoader().getResource("res/hoge.png");

ここで、セパレータ(/)を直打ちせずに、File.seoaratorを使用するとjarファイルを実行した際にパスの解決に失敗する。

 

3. eclipseの設定

該当アプリのRun Configurationsを選択後、

[ Classpathタブ ] – [ User Entriesを選択 ] – [ Advanced ] – [ Add Folders ] – [ プロジェクトフォルダを選択 ] – [ OK ]

以下のようにClasspathにプロジェクトルートが追加されればOK。

 

4. jarファイルの生成

Project Explorerから該当プロジェクトを選択後、

[ Export ] – [ Java ] – [ JAR file ]

.classpath, .projectはjarファイル内には不要なので、チェックを外す。

export destinationを設定。次々の画面に進む。

Main classを指定してfinish。

 

これで、eclipseでの開発中も、jarファイルの実行時もresフォルダ内のリソースに同一コードでアクセスできる。