Java

【初心者向け】Javaのjarファイルの操作方法を解説!オプションの使い方も紹介!

「Javaのjarファイルの使い方がよくわからない。誰かやり方を教えてほしい」

本記事はこのような悩みを解決します。

Javaの文法は知っていても、jarファイルとは何かを知らない方は多いのではないでしょうか。普通にJavaを勉強しているだけでは、jarファイルにはなかなかお目にかからないかもしれませんね。しかし、jarファイルはプログラミング初心者であってもぜひ知っておきたいことの1つです。

そこで本記事ではjarファイルについて、1から解説していきます。jarファイルの作り方や、jarファイルの解凍の仕方などについてもひと通り紹介します。

本記事を読むことでjarファイルに関する基礎を固めることができますよ。プログラミング初心者の方はぜひこの機会にjarファイルに関する知識を深めましょう。

jarファイルの基礎

jar拡張子とは何か

みなさんは「~.jar」というファイルを見たことがあるでしょうか? アプリをよくダウンロードする人なら一度は見たことかあるのではないでしょうか。このような拡張子「.jar」のファイルがjarファイルです。

jarとはJava Archiveの略です。その名の通り、Javaのファイルがひとつにまとめられ、アプリケーションとして使えるようになったファイルのことです。コンパイルされた複数のclassファイルやプログラムが使用する画像などはすべてjarファイルの中に入っています。

こうしたファイルをすべて入れると、容量が非常に大きくなってしまいます。そこでjarファイルはzip形式で圧縮されています。

jarファイルが普通のzipファイルと異なるのは、圧縮された状態のまま使用することができる点です。通常、zip形式で圧縮されたファイルは解凍しないと動かすことができませんよね。

このように、複数のjavaファイルが圧縮されてひとまとめになったものをjarファイルといいます。

本記事ではこのjarファイルを実際に使用する方法を解説していきます。

jar拡張子の使い方

Windowsならコマンドプロンプト、Macならターミナルからコマンドを入力することで、javaファイルを実行したり解凍したりすることができます。

jarファイルを操作する場合は、jarコマンドを入力する必要があります。
jarコマンドには色々なオプションが存在しますが、ここでは主に使われるオプションをご紹介します。

  • -f…jarファイル名を指定する
  • -c…jarファイルを新規作成する
  • -t…jarファイルの中身を表示する
  • -x…jarファイルを展開する
  • -u…jarファイルを更新する
  • -v…コマンドラインに処理内容を表示する
  • -o…圧縮をしない
  • -m…マニフェストファイルを指定する
  • -M…マニフェストファイルを作成しない

これらのオプションを使いこなすことで、スムーズにjarファイルを作成することができます。大文字と小文字で機能が異なるオプションもあるので気をつけてくださいね。

jarファイルの具体的な操作方法

jarファイルの作成方法

それでは実際にjarファイルを作ってみましょう。

ここでは次のサンプルコードを用意しました。こちらのコードを使って試してみてください。

public class Test{
    public static void main(String[] args) {
        TestClass a = new TestClass();
    }
}
 
class TestClass {
    public testClass() {
        System.out.println(“Hello World!”);
    }
}

これは「Hello World!」と表示するだけの簡単なプログラムです。
ファイル名を「Test.java」にして保存しましょう。javaはクラス名とファイル名を合わせないと実行できないので気をつけてください。

javaファイルを作成したら、次のコマンドを実行し、classファイルを作成します。

javac Test.java

次に、作成したclassファイルを次のコマンドでjarファイルに圧縮します。

jar -cvf Test.jar *.class

次のように表示されていれば正しくjarファイルが作成できています。

◯表示結果

マニフェストが追加されました
TestClass.classを追加中です(入=354)(出=271)(23%収縮されました)
Test.classを追加中です(入=285)(出=219)(23%収縮されました)

これで、jarファイルを作成することができました。

jarファイルの中には作成したclassファイルがすべて格納されています。今回の場合はTest.classとTestClass.classが該当しますね。

同じフォルダにすでに別のクラスファイルがある場合、それらのファイルも一緒にjarファイルに入ってしまうので気をつけてくださいね。

jarファイルの実行方法

続いて作成したjarファイルを実行する方法を解説します。

jarファイルを実行するには、マニフェストファイルが必要になります。
テキストエディタを開いて「Test.mf」というファイルを作成しましょう。ファイルの中には次のように記入してください。

Main-Class: Test

マニフェストファイルには「Main-Class:{クラス名}」と記述するのが基本です。また、行の最後は必ず改行するようにしてください。改行しないと正しく実行されない恐れがあります。

マニフェストファイルを作成したら、マニフェストファイルを指定してjarファイルを作成します。次のコマンドを入力してください。

jar -cvfm Test.jar Test.mf *.class

◯表示結果

マニフェストが追加されました
TestClass.classを追加中です(入=354)(出=271)(23%収縮されました)
Test.classを追加中です(入=285)(出=219)(23%収縮されました)

これで、新しいjarファイルが作成できました。

jarファイルを作成したら、次のコマンドで実行しましょう。

java -jar test.jar

◯表示結果

Hello World!

コマンドプロンプト上に実行結果が表示されれば、jarファイルが実行できたことになります。

これでいつでもjarファイルが実行できるようになりました。

jarファイルの中身を確認する方法

jarファイルに圧縮した後で「jarファイルにはどんなファイルが入っていたっけ?」というとき、中身を確認する方法をご紹介します。

圧縮したjarファイルの内容を確認するには、次のコマンドを入力します。

jar -tf Test.jar

次のようにファイルの中身が一括で表示されれば成功です。マニフェストファイルなども表示されます。

◯表示結果

META-INF/
META-INF/MANIFEST.MF
TestClass.class
Test.class

オプションは、tが「jarファイルの中身を確認する」で、fが「jarファイル名を指定する」ですね。

これで、jarファイルの中身を確認することができます。

jarファイルを展開する方法

圧縮したjarファイルを再び展開する方法もご紹介します。

jarファイルを展開する場合は、次のコマンドを実行しましょう。

jar -xvf Test.jar

次のように展開されたファイルの一覧が表示されれば成功です。

◯表示結果

META-INF/が作成されました
META-INF/MANIFEST.MFが展開されました
TestClass.classが展開されました
Test.classが展開されました

オプションは、xが「jarファイルを展開する」で、vが「コマンドラインに処理内容を表示する」、fが「jarファイル名を指定する」ですね。

こうすることで、jarファイルを展開することができます。

まとめ

本記事ではjarファイルについて解説してきました。jarファイルの基礎がご理解頂けたでしょうか?

コマンドを利用することでjarファイルを自在に操ることができます。jarファイルは実務においても頻繁に利用することになるので、今のうちにしっかり覚えておきましょう。
本記事で紹介したjarコマンドのオプションを、ぜひ試しに実行してみてくださいね。

本記事がJava初心者の方にとって有意義なものとなれば幸いです。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。