JavaのJar(ジャー)拡張子の使い方【初心者向け】
初心者向けにJavaのJar(ジャー)拡張子の使い方について解説しています。これはJava ARchiveの略で、圧縮ファイルのひとつです。jarファイルの作成、展開方法といった基本の操作について学びましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaのJar(ジャー)拡張子の使い方について解説します。
実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
Jar(ジャー)拡張子の使い方について詳しく説明していくね!
お願いします!
Jar(ジャー)拡張子とは
JARは「Java ARchive」の略で、Javaプログラムの配布形式のひとつです。
classファイルやリソースファイルなどが、ZIP形式でひとつのファイルにまとめられています。
Javaの開発では、有志が公開・メンテナンスしている様々なオープンソースライブラリを利用する場面が多くあります。それらライブラリはJARファイルで提供されていることがほとんどです。
Jar(ジャー)拡張子の使い方
JavaではJARファイルを操作するために「jar」という名前のコマンドが用意されています。もしあなたがOracleのサイトからJDKをダウンロード・インストールしたのであれば、すでに「jar」コマンドが利用可能な状態になっているはずです。
試しに「コマンドプロンプト」を開き、次のコマンドを実行してみましょう。
(Macの場合は「ターミナル」を開いて実行しましょう)
jar --help
次のような、使い方が表示されるでしょう。
(Javaバージョンや環境などにより、実際の出力と異なる場合があります)
使用方法: jar [OPTION...] [ [--release VERSION] [-C dir] files] ... jarはクラスおよびリソースのアーカイブを作成し、アーカイブから個々のクラスまたは リソースを操作または復元できます。 例: # 2つのクラス・ファイルを含むclasses.jarというアーカイブを作成する: jar --create --file classes.jar Foo.class Bar.class # foo/のすべてのファイルを含む、既存のマニフェストを使用したアーカイブを作成する: jar --create --file classes.jar --manifest mymanifest -C foo/ . # モジュラjarアーカイブを作成する。モジュール・ディスクリプタはclasses/module-info.classに # ある: jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ classes resources # 既存の非モジュラjarをモジュラjarに更新する: jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ module-info.class # 複数リリースjarを作成し、一部のファイルをMETA-INF/versions/9ディレクトリに配置する: jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes jarコマンドを短縮または簡略化するには、個別のテキスト・ファイルで引数を指定し、 記号(@)を接頭辞として使用してjarコマンドに渡します。 例: # 追加オプションおよびクラス・ファイルのリストをファイルclasses.listから読込みます jar --create --file my.jar @classes.list メイン操作モード: -c、--create アーカイブを作成します -i,、--generate-index=FILE 指定のjarアーカイブの索引情報を 生成します -t、--list アーカイブの内容を一覧表示します -u、--update 既存のjarアーカイブを更新します -x、--extract 指定の(またはすべての)ファイルをアーカイブから抽出します -d, --describe-module モジュール・ディスクリプタまたは自動モジュール名を出力します どのモードでも有効な操作修飾子: -C DIR 指定のディレクトリに変更し、次のファイルを 取り込みます -f、--file=FILE アーカイブ・ファイル名。省略した場合、stdinまたは stdoutのいずれかが操作に基づいて使用されます --release VERSION 次のすべてのファイルをjarのバージョニングされたディレクトリ (つまり、META-INF/versions/VERSION/)に配置します -v、--verbose 標準出力に詳細な出力を生成します 作成または更新モードでのみ有効な操作修飾子: -e、--main-class=CLASSNAME モジュラまたは実行可能なjarアーカイブに バンドルされたスタンドアロン・アプリケーションの アプリケーション・エントリ・ポイント -m、--manifest=FILE 指定のマニフェスト・ファイルからマニフェスト情報を 取り込みます -M、--no-manifest エントリのマニフェスト・ファイルを作成しません --module-version=VERSION モジュラjarの作成時または非モジュラjarの更新時の モジュール・バージョン --hash-modules=PATTERN モジュラjarの作成時または非モジュラjarの更新時に 指定のパターンに一致し、直接または間接的に 依存しているモジュールのハッシュを 計算および記録します -p、--module-path ハッシュを生成するモジュール依存性 の場所 作成、更新および索引生成モードでのみ有効な操作修飾子: -0, --no-compress 格納のみ。ZIP圧縮を使用しません その他のオプション: -h、--help[:compat] これ(オプションで互換性)をhelpに指定します --help-extra 追加オプションのヘルプを提供します --version プログラム・バージョンを出力します モジュール・ディスクリプタ'module-info.class'が指定のディレクトリのルートまたは jarアーカイブ自体のルートにある場合、アーカイブはモジュラjarです。 次の操作は、モジュラjarの作成時または既存の非モジュラjarの更新時に のみ有効です: '--module-version'、 '--hash-modules'および'--module-path'。 ロング・オプションへの必須またはオプションの引数は、対応するショート・オプション に対しても必須またはオプションになります。
Jar(ジャー)拡張子の例、方法など
「jar」コマンドの基本的な使い方である以下2点を紹介します。
- jarファイルを作成する
- jarファイルを展開する
1. jarファイルを作成する
次のコマンドを実行すると、カレントフォルダに「sample.jar」を作成することができます。
jar cvf sample.jar -C {classファイルなどがあるフォルダ} .
たとえば、/javaproject/target 配下にあるclassファイルやリソースファイルを含めたjarファイルを作成する場合は以下です。
jar cvf sample.jar -C /javaproject/target .
2. jarファイルを展開する
次のコマンドを実行すると、sample.jarファイルをカレントフォルダに展開します。
jar xvf sample.jar
試しに次のリンクからダウンロードしたファイルに含まれる「commons-lang3-x.x.x.jar」を展開してみましょう。
なお、「x」にはバージョンを表す番号が入ります。
バージョン3.8.1の場合は以下のようになります。
jar xvf commons-lang3-3.8.1.jar
監修してくれたメンター
青柳哲夫
独立系SIerやベンチャーを経て、現在はフリーランスエンジニアとして活動しています。 PHPやJava・Rubyでの業務系Webアプリケーション開発が得意です。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。