スライドショー

【Java入門】jarファイルの作成、解凍、実行について解説

こんにちは!フリーランスの長野です。

Javaのjarファイルって使ってますか?jarファイルは他のプログラムで使うライブラリやJavaアプリの実行ファイルとして使えるので、流用ができて便利です。

この記事では、Javaのjarについて

jarとは?
jarコマンドの使い方を知りたい

という基本的な疑問から

  • jarファイルの作成
  • jarファイルの実行
  • jarファイルの解凍
  • jarファイルの閲覧
  • classpathを指定して実行

など実用的な内容についても解説していきます。今回はjarについて、わかりやすく解説します!

jarとは

jarとは、コンパイルされた複数のclassファイルおよびそれが使用する画像などのリソースを一つにまとめZIP形式で圧縮されたファイル、もしくはそれを出力するツールのことを言います。Java Archiveの略です。

圧縮することでJavaのライブラリやアプリケーションの配布、利用が簡単になります。jarはコマンドでよく使用されます。

jarコマンドの使い方

jarコマンドはコマンドプロンプトなどで使用します。jarコマンドは下記のようなオプションを指定して使います。

オプション説明
-c圧縮ファイルの新規作成
-t内容の一覧を表示
-x圧縮ファイルの展開
-ujarファイルの更新
-vコマンドラインに処理内容を表示
-fjarファイル名の指定
-mマニフェストファイルを指定
-iインデックス情報を作成
-o圧縮を行わない
-Mマニフェストファイルを作成しない
-C指定したファイルの取り込み

jarファイルの作成

それでは実際にjarファイルを作成してみましょう。jarファイルを作成する前にJavaファイルをコンパイルしてclassファイルを作成します。

Sample.java:

class Sample {
    public static void main(String[] args) {
        Sample2 sample = new Sample2();
    }
}
 
class Sample2 {
    public Sample2() {
        System.out.println("Hello Java!");
    }
}

画像:実行結果

javacコマンドでclassファイルを作成した後に、jarコマンドでSample.classファイルとSample2.classファイルをSample.jarファイル1つにまとめています。

javacコマンドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】コンパイルする方法とエラー発生時の対処法について解説
更新日 : 2019年5月10日

jarファイルの実行

jarファイルを実行するにはマニフェストファイルが必要です。マニフェストファイルにはmainメソッドを含むクラス名を指定します。例えば以下のとおりです。

manifest.mf:

Main-Class: Sample

マニフェストファイルの拡張子は「.mf」にする必要があります。「Main-Class:」のあとにmainメソッドを含むクラス名を指定します。そして、行の最後は必ず改行する必要があります。

マニフェストファイルを指定してjarファイルを作成する例です。

jar -cvfm Sample.jar manifest.mf *.class

これを実行するコマンドは以下のとおりです。

java -jar Sample.jar

画像:実行結果

jarファイルの解凍

圧縮したjarファイルを解凍するには次のようにコマンドを入力実行します。

jar -xvf Sample.jar

画像:実行結果

jarファイルの閲覧

圧縮したjarファイルの内容を閲覧するには次のようにコマンドを入力実行します。

jar -tf Sample.jar

画像:実行結果

classpathを指定して実行

jarファイルにclasspathを指定して実行する方法についてご紹介します。

ここまでのサンプルコードで例えばHelloフォルダ内のクラスファイルをjarファイルにまとめて、そのjarファイルとMain.javaクラスを使って処理するということをやってみましょう。

Helloフォルダのファイルを2つに増やします。

Hello/Hello1.java:

public class Hello1 {
    public Hello1() {
        System.out.println("Hello World!");
    }
}

Hello/Hello2.java:

public class Hello2 {
    public Hello2() {
        System.out.println("Hello Java!");
    }
}

この2つのファイルをMain.javaファイルから使用します。

Main.java:

public class Main {
    public static void main(String[] args) {
        Hello1 hello1 = new Hello1();
        Hello2 hello2 = new Hello2();
    }
}

コンパイルしたら、HelloフォルダでHello1.classとHello2.classファイルをHello.jarファイルに圧縮します。

画像:実行結果

Hello.jarファイルとMain.javaファイルを使ってコンパイルをします。Hello.jarファイルを指定するのに-classpathオプションを使います。ただし注意すべき点が1点あります。

実行する際にはjarファイルの指定後に「;」(セミコロン)が必要です。

画像:実行画面

classpathの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】classpathを指定して実行する方法(確認の方法も解説)
更新日 : 2019年4月8日

まとめ

今回はJavaのjarについて解説してきましたが、いかがでしたか?Javaではプログラミングをする際にたくさんのクラスが必要となります。一つのjarファイルにまとめて圧縮しておくと、ライブラリやJavaアプリとして配布、使用することができて便利です。

使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]