Java Tips:プログラムでJARファイルを読み込むには:JAVA Developer
Javaの標準アーカイブであるJARファイルは,Javaの標準APIで作成したり,解凍したりすることが可能です。ここでは,JARファイルに含まれる特定の拡張子がついているファイルの抽出を例に,プログラムでJARファイルを読み込む方法を紹介します。
ZIPファイルを基本にしたJARファイル
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
サン・マイクロシステムズが提供しているJARファイルのドキュメントによると,JARファイルはZIPファイル形式に基づいたファイル形式で,META-INFディレクトリにマニフェストファイルを格納することがオプションになっています。プログラムでJARファイルやZIPファイルを読み込む場合は,次のリストに示すようにjava.util.jar.JarFileおよびjava.util.zip.ZipEntryクラスを使います。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
使い方としては,JarFileのコンストラクタにファイルのパス名(URL)を示す文字列またはFileオブジェクトを与え,JarFileオブジェクトを生成します。JarFile#entriesメソッドでアーカイブされているファイルのエントリの列挙を取得します。Enumerationに格納されているオブジェクトはZipEntryオブジェクトで,エントリ情報にアクセスするためのメソッドが提供されています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
JARファイルに格納されたファイル(ディレクトリ)のエントリは,ZipEntry#getNameメソッドを使って取得します。isDirectoryメソッドを使うことで,エントリがディレクトリかファイルなのかを調べることができます。
エントリ名は,ディレクトリ構造ごとアーカイブされている場合,次に示すように/(スラッシュ)で区切られています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
実際にファイルエントリを読み込む場合は,エントリのZipEntryオブジェクトを渡してJarFile#getInputStreamメソッドを呼びます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ここではInputStreamオブジェクトをそのまま利用していますが,BufferedInputStreamを利用したり,読み込むエントリがテキストファイルであればBufferedReaderクラスを利用したりしてもよいでしょう。
「JAVA Developer」より毎週役立つJava Tipsを配信中。ほかにも参考になるTipsは、JAVA Developerサイトのバックナンバーから探すことが可能です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.