JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > jarコマンド編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  2003/02/03  田中宏和
jarコマンド編

◆jarコマンドとは?

J2SE SDKに含まれているコマンドの一つです。複数のファイルやディレクトリを1つのアーカイブファイルに統合するツールです。複数のクラスファイルやリソースファイルなどを1つのファイルにまとめることでライブラリとしての管理や配布が容易にできるようになります。
◆アーカイブファイルとは?
複数のファイルやディレクトリを1つのファイルにまとめたものです。こうすることによって、たくさんのファイルを1つのファイルで配布することができるようになります。また、圧縮することによってファイルのサイズが小さくできるのでインターネットでダウンロードしたりする場合に効率がよくなります。よく見かける「.zip」という拡張子になっているものでおなじみです。
◆ここでの環境
OS Windows XP
J2SE SDK 1.4.1_01
 
◆Javaの実行環境の構築
jarはJ2SE SDKに含まれているコマンドです。アプリケーション編を参考にJavaの実行環境を構築してください。
 
構文の説明
基本的な構文は以下のようになります。

jar [オプション] [マニフェストファイル] jarアーカイブファイル 入力するファイル1 [入力ファイル2・・]
[ ]で囲まれたものは省略可能です。
■オプションの説明
オプション 説明
-c アーカイブを新規作成する
-t アーカイブの内容を一覧表示する
-x 指定の (またはすべての) ファイルをアーカイブから抽出する
-u 既存アーカイブを更新する
-v 標準出力に詳細な出力を生成する
-f アーカイブファイル名を指定する
-m 指定のマニフェストファイルからマニフェスト情報を取り込む
-O 格納のみ。ZIP 圧縮を使用しない
-M エントリのマニフェストファイルを作成しない
-i 指定の jar ファイルのインデックス情報を生成する
-C 指定のディレクトリに変更し、以下のファイルを取り込む
■マニフェストファイルとは
jarアーカイブファイルに含まれているファイルの情報を記述するファイルのことです。jarアーカイブファイルの中に入っています。META-INFディレクトリの下のMANIFEST.MFという名前のファイルです。
 
jarアーカイブファイルの作成
jarアーカイブファイルを新規に作成する例です。新規に作成するには「cf」オプションをつけてその後に生成するjarアーカイブファイル名を指定します。標準出力に詳細な情報を表示するには「v」オプションをつけます。
jar cf 生成するjarアーカイブファイル名 アーカイブに入れるクラスやリソースファイル
 
■使用例
(例1) ファイルを指定
HelloWorld1.classを入れてmylib.jarファイルを作成する場合
jar cf mylib.jar HelloWorld1.class
javahello\HelloWorld3.classを入れてmylib.jarファイルを作成する場合
jar cf mylib.jar javahello\HelloWorld3.class
(例2) ファイルを指定(複数)
jar cf mylib.jar HelloWorld1.class HelloWorld2.class
(例3) ファイルを指定(ワイルドカードを使用)
jar cf mylib.jar *.class
(例4) ディレクトリを指定
javahelloというディレクトリの中身をjarファイルに入れます。
jar cf mylib.jar javahello
*.classの他に、imageというディレクトリの中身もjarファイルに入れます。
jar cf mylib.jar *.class image
*.classの他に、imageとaudioというディレクトリの中身もjarファイルに入れます。
jar cf mylib.jar *.class image audio
(例5) 詳細情報を画面に表示
C:\JavaHello\jar>jar cvf mylib.jar *.class
マニフェストが追加されました。
HelloWorld1.class を追加中です。(入 = 427) (出 = 288)(32% 収縮されました)
HelloWorld2.class を追加中です。(入 = 427) (出 = 288)(32% 収縮されました)

C:\JavaHello\jar>

 
 
jarアーカイブファイルの中身を見る
jarアーカイブファイルの中身を見る例です。jarアーカイブファイルの中身を見るには「tf」オプションをつけてその後にjarアーカイブファイル名を指定します。標準出力に詳細な情報を表示するには「v」オプションをつけます。
jar tf 中身を見たいjarアーカイブファイル名
 
■使用例
(例1)
C:\JavaHello\jar>jar tf mylib.jar
META-INF/
META-INF/MANIFEST.MF
HelloWorld1.class
HelloWorld2.class

C:\JavaHello\jar>

(例2) 詳細情報を画面に表示
C:\JavaHello\jar>jar tvf mylib.jar
0 Mon Feb 03 22:34:28 JST 2003 META-INF/
71 Mon Feb 03 22:34:28 JST 2003 META-INF/MANIFEST.MF
427 Mon Feb 03 22:04:42 JST 2003 HelloWorld1.class
427 Mon Feb 03 22:04:42 JST 2003 HelloWorld2.class

C:\JavaHello\jar>

 
 
jarアーカイブファイルの中身を取り出す
jarアーカイブファイル中身を取り出す例です。jarアーカイブファイルの中身を取り出すには「xf」オプションをつけてその後にjarアーカイブファイル名を指定します。標準出力に詳細な情報を表示するには「v」オプションをつけます。
jar xf 中身を取り出したいjarアーカイブファイル名
 
■使用例
(例1)
jar xf mylib.jar
(例2) 詳細情報を画面に表示
C:\JavaHello\jar>jar xvf mylib.jar
META-INF/ が作成されました。
META-INF/MANIFEST.MF が抽出されました。
HelloWorld1.class が抽出されました。
HelloWorld2.class が抽出されました。

C:\JavaHello\jar>

META-INF\MANIFEST.MFファイルも取り出されたので中身を見てみます。
MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.4.1_01 (Sun Microsystems Inc.)
MANIFEST.MFファイルは「属性名: 値」という形式で書かれています。
 
 
jarアーカイブファイルに新たにファイルを追加する
jarアーカイブファイルに新たにファイルを追加する例です。jarアーカイブファイルに新たにファイルを追加するには「uf」オプションをつけてその後にjarアーカイブファイル名を指定します。標準出力に詳細な情報を表示するには「v」オプションをつけます。
jar uf jarアーカイブファイル名 追加するクラスやリソースファイル
 
■使用例
(例1)
jar uf mylib.jar javahello\HelloWorld3.class
(例2) 詳細情報を画面に表示
C:\JavaHello\jar>jar uvf mylib.jar javahello\HelloWorld3.class
javahello/HelloWorld3.class を追加中です。(入 = 427) (出 = 288)(32% 収縮されました)

C:\JavaHello\jar>

 
 
■書籍
Java関連の書籍

 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME