tips/JAVA/JAR ファイル内に画像ファイルなどを含める のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- tips/JAVA/JAR ファイル内に画像ファイルなどを含める へ行く。
- 1 (2008-03-12 (水) 23:28:47)
- 2 (2008-03-13 (木) 01:10:20)
JAR ファイル内に画像ファイルなどを含める †
画像ファイルを JAVA プログラム内で使用する場合、 とりあえず使うにはイメージ関連のクラス (Swing なら ImageIcon)のコンストラクタに ファイル名を渡せばよいですが、 この方法だと JAR ファイル化した時に画像ファイルを JAR ファイルに含められません。 (ファイル名指定だとファイルそのものを取得しようとするため)。
この場合、クラスローダーというクラスの getResource というメソッドを使用すれば 画像などのファイルを URL もしくは InputStream の形で取得できます。 クラスローダーは java の実行時に必要なクラスを クラスパスの JAR ファイルからロードするクラスです。 そして getResource メソッドを使用すれば、 クラスファイルを取得するのと同じように JAR ファイルの中の画像を取得できます。
Swing の場合
ClassLoader classLoader = this.getClass().getClassLoader(); URL resUrl = loader.getResource("xxx.gif"); ImageIcon image = new ImageIcon(resUrl);
SWT の場合
Image image; ClassLoader classLoader = this.getClass().getClassLoader(); InputStream iStream = classLoader.getResourceAsStream("xxx.gif"); if(iStream != null){ image = new Image(Display.getDefault(), iStream); }