今回は、Jarコマンドを使用してJAR(Java Archive)形式のファイルの内容を変更する方法を紹介していきます。
JAR形式のファイルは、ZIP形式など圧縮されたファイル形式になります。解凍/圧縮ツールなどを使用して、解凍してJAR形式ファイルの内容を確認することもできます。
検証環境
検証に使用した環境/ライブラリを次に記載します。
Jar- バージョン:11.0.9
Jarコマンドの使用方法の例を紹介するための、検証用ディレクトリ構成を次に記載します。
example.jar
├─com
│ └─fumidzuki
│ ExampleMain1.class
│ ExampleMain2.class
│
└─META-INF
MANIFEST.MF
JARファイルから取得
JARファイルから特定のファイルを取得するためには、次のJarコマンドを実行します。
jar -xfv JARファイル名 ファイル名、または、ディレクトリ名
指定しているオプションは、次の処理を意味します。
-x- 指定したファイル、または、ディレクトリを
JARファイルから取得します。指定しない場合は、すべてを取得します。
- 指定したファイル、または、ディレクトリを
-fJARファイル名を指定するために使用します。
-v- 標準出力に詳細情報を表示します。
Jarコマンドでファイル名を指定した、ファイル取得の実行例は、次のようになります。
jar -xfv example.jar com\fumidzuki\ExampleMain1.class
> com/fumidzuki/ExampleMain1.classが展開されました
Jarコマンドでディレクトリ名を指定した、ファイル取得の実行例は、次のようになります。
jar -xfv example.jar com\fumidzuki\
> com/fumidzuki/ExampleMain1.classが展開されました
> com/fumidzuki/ExampleMain2.classが展開されました
JARファイルの更新
JARファイルの内容を更新するためには、次のJarコマンドを実行します。
jar -ufv JARファイル名 ファイル名、または、ディレクトリ名
指定しているオプションは、次の処理を意味します。
-u- 指定したファイル、または、ディレクトリを使用して
JARファイルを更新します。
- 指定したファイル、または、ディレクトリを使用して
-fJARファイル名を指定するために使用します。
-v- 標準出力に詳細情報を表示します。
Jarコマンドでファイルを名を指定した、ファイル更新の実行例は、次のようになります。
jar -ufv example.jar com\fumidzuki\ExampleMain1.class
> com/fumidzuki/ExampleMain1.classを追加中です(入=562)(出=345)(38%収縮されました)
Jarコマンドでディレクトリ名を指定した、ファイル更新の実行例は、次のようになります。
jar -ufv example.jar com\fumidzuki\
> com/fumidzuki/ExampleMain1.classを追加中です(入=562)(出=345)(38%収縮されました)
> com/fumidzuki/ExampleMain2.classを追加中です(入=562)(出=346)(38%収縮されました)
> com/fumidzuki/を追加中です(入=0)(出=0)(0%格納されました)
まとめ
Jarコマンドを使用して、JAR形式ファイルの内容の取得と更新する方法を紹介しました。
参考情報
Jarコマンドについては、次の公式サイトで詳細を確認することができます。
