jar-アーカイブの操作
事前基礎知識
・アーカイブとは
複数のファイルやフォルダを一つのファイルにまとめたもの
1.jarコマンドとは
Windowsの実行プログラムは、通常はexeの拡張子を持った単一のファイルです。
一方、Javaで開発された実行可能プログラムの姿は、複数のクラスファイル(.class)の集合です。
このように「複数のクラスファイルの集合」という形式では、
別の開発者に渡すときにファイルの受け渡し漏れなどの事故が発生する可能性もあります。
筆者も開発現場で実際に細かくクラスファイルを分けてもらってということもありました。
そこで、それらのファイル一式を1つにまとめるアーカイブ形式(事前基礎知識を参照)として、
**JAR(Java Archive)**が定められています。
JDKに標準添付されているjarコマンドを使えば、複数のクラスファイルやプロパティファイルなどを
まとめて1つのJARファイルにしたり、逆にJARファイルの中身をもとのクラスファイルなどに展開したり
できます。(図1)
1.jarコマンドの基本的な使い方
jarコマンドで通常行うのは
「アーカイブの作成」「アーカイブの展開」「アーカイブ内容の閲覧」です。
それぞれ下記のコマンドで実行します
・アーカイブの作成
>jar -cvf JARファイル名 ファイルおよびフォルダ・・・
・アーカイブの展開
>jar -xvf JARファイル名
・アーカイブ内容の閲覧
>jar -tvf JARファイル名
たとえば、Test1.classとTest2.classをまとめてTest.jarを作りたい場合、次のようなコマンドを実行します。
>jar -cvf Test.jar Test1.class Test2.class
2.マニフェストファイル
zipやlhaといったアーカイブ形式の圧縮ファイルを使ったことがある人はもちろんいるでしょう。
実はJAR形式はzip形式とほとんど同じようなものです。
(JARファイルの拡張子をzipに書き換えると、zipファイルを展開するソフトで問題なく展開することができます)
ただしJARファイルには、アーカイブ内に含まれる様々なファイルに関する追加情報を記述した
マニフェストファイルを含めることが一般的です。
マニフェストはテキストファイル形式であり、アーカイブ内のMETA-INFフォルダ中の
MANIFEST.MFという名前で格納する決まりになっています。
3.JARファイル利用のメリット
・ファイル領域の効率の良さ
圧縮すれば必要なファイル領域が減って効率が上がる
・セキュリティ
JARファイルは署名を施すことができるため、セキュリティ上の制限がある程度まで和らげることができる
間違っている知識などございましたら、ご教示いただけると幸いです。