« 作成したjarファイルから外部のjarファイルを参照できない | メイン | JAR ファイルを実行時に main メソッドが見つからない »
2004年12月15日
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);
}
投稿者 kyohei : 2004年12月15日 22:37
トラックバック
このエントリーのトラックバックURL:
http://240k.jp/cgi-bin/MT333/mt-tb.cgi/99