【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:

画像:実行結果

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

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

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

jarファイルの実行

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

manifest.mf:

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

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

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

画像:実行結果

jarファイルの解凍

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

画像:実行結果

jarファイルの閲覧

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

画像:実行結果

classpathを指定して実行

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

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

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

Hello/Hello1.java:

Hello/Hello2.java:

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

Main.java:

コンパイルしたら、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アプリとして配布、使用することができて便利です。

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

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1
LINEで送る
Pocket

書いた人

長野 透

長野 透

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説