Javaで開発したアプリケーションを配布・共有したい場合、jarファイルを作成することが一般的な方法です。
「jarファイルってどうやって作るの?」と疑問に思っている方も多いのではないでしょうか。
この記事では、jarファイルの作り方について、基本的なjarコマンドの使い方から、マニフェストファイルの作成、MavenやGradleなどのビルドツールを使った方法まで詳しく解説しています。
Javaアプリケーションを効率的にパッケージ化・配布できるようになるために、ぜひ参考にしてください。
jarファイル作成の基本的な流れと準備
それではまず、jarファイル作成の基本的な流れと準備について解説していきます。
jarファイルを作成するためには、いくつかの前提条件が必要です。
jarファイル作成の基本的な流れ:1.Javaソースコードを作成する → 2.javacコマンドでコンパイルしてclassファイルを生成する → 3.MANIFEST.MFを作成する(実行可能jarの場合) → 4.jarコマンドでclassファイルとリソースをアーカイブ化する
javacコマンドでソースをコンパイルする
jarファイルを作成する前に、まずJavaソースコード(.javaファイル)をコンパイルしてclassファイルを生成する必要があります。
コンパイルコマンドの例:
javac -d out/ src/com/example/*.java
(-dオプションでclassファイルの出力先ディレクトリを指定)
コンパイルが成功すると、指定したディレクトリ内にパッケージ構造に対応したclassファイルが生成されます。
コンパイルエラーが発生した場合は、エラーメッセージを確認してソースコードを修正してから再度実行しましょう。
ディレクトリ構成の整理
jarファイルの作成をスムーズに行うために、ディレクトリ構成を事前に整理しておくことが重要です。
典型的なプロジェクト構成例:
project/
├── src/(Javaソースコード)
│ └── com/example/Main.java
├── out/(コンパイル済みclassファイル)
│ └── com/example/Main.class
├── resources/(リソースファイル)
└── manifest.txt(マニフェストファイル)
マニフェストファイルの作成
実行可能jarファイルを作成するには、メインクラスを指定したマニフェストファイルを用意します。
manifest.txtの内容例(最後に改行が必要):
Manifest-Version: 1.0
Main-Class: com.example.Main
(ファイルの最終行の後に必ず改行を入れること)
マニフェストファイルの最後に改行がないと、Main-Classが正しく認識されないため注意が必要です。
jarコマンドを使ったjarファイルの作成手順
続いては、jarコマンドを使ったjarファイルの作成手順を確認していきます。
JDKに付属するjarコマンドを使うことで、コマンドラインから直接jarファイルを作成できます。
| オプション | 意味 |
|---|---|
| c | 新しいアーカイブを作成する |
| v | 詳細情報(verbose)を表示する |
| f | 出力するjarファイル名を指定する |
| m | マニフェストファイルを指定する |
| e | エントリーポイント(メインクラス)を直接指定する |
| x | アーカイブを展開する |
| t | アーカイブの内容を一覧表示する |
基本的なjarファイルの作成コマンド
最もシンプルなjarファイルの作成コマンドは以下の通りです。
実行可能jarファイルの作成(マニフェストファイルを使用):
jar cvfm myapp.jar manifest.txt -C out/ .
(-Cオプションでclassファイルのベースディレクトリを指定し、「.」で全ファイルを対象にする)
エントリーポイントを直接指定する方法:
jar cvfe myapp.jar com.example.Main -C out/ .
「-e」オプションを使うと、マニフェストファイルを別途用意しなくてもメインクラスを指定できるため便利です。
リソースファイルも含めてjarを作成する方法
アプリケーションで使用する画像ファイルや設定ファイルもjarに含める場合は、それらのファイルも合わせて指定します。
リソースも含めたjarファイルの作成例:
jar cvfe myapp.jar com.example.Main -C out/ . -C resources/ .
複数のディレクトリを指定することで、classファイルとリソースファイルを一つのjarにまとめることができます。
既存のjarにファイルを追加・更新する方法
作成済みのjarファイルにファイルを追加したり、既存のファイルを更新したりすることも可能です。
jarファイルにファイルを追加・更新するコマンド:
jar uf myapp.jar newfile.class
(uオプションで既存のjarを更新する)
MavenやGradleを使ったjarファイルの作成方法
続いては、MavenやGradleを使ったjarファイルの作成方法を確認していきます。
実際の開発現場では、手動でjarコマンドを実行するよりも、ビルドツールを使って自動的にjarファイルを生成することが一般的です。
Mavenを使ったjarファイルの生成
Mavenプロジェクトでjarファイルを生成するには、プロジェクトのルートディレクトリで以下のコマンドを実行します。
Mavenでjarファイルを生成するコマンド:
mvn package
実行可能jar(Fat JAR)を生成する場合(maven-shade-pluginを使用):
mvn package shade:shade
Mavenのpom.xmlにmaven-jar-pluginの設定を追加することで、メインクラスの指定やマニフェストのカスタマイズが可能です。
生成されたjarファイルは「target/」ディレクトリ内に作成されます。
Gradleを使ったjarファイルの生成
Gradleプロジェクトでjarファイルをビルドするにはbuildコマンドを使います。
Gradleでjarファイルをビルドするコマンド:
gradle build
jarタスクのみ実行する場合:
gradle jar
build.gradleにjarタスクの設定を追加することで、メインクラスの指定やマニフェストのカスタマイズができます。
Spring Bootプロジェクトでは「./gradlew bootJar」コマンドで依存ライブラリも内包した実行可能なFat JARを生成できます。
IDEからのjarファイル生成方法
IntelliJ IDEAを使っている場合は、「File」→「Project Structure」→「Artifacts」からJARの設定を追加し、「Build」→「Build Artifacts」からjarファイルを生成できます。
Eclipseでは「ファイル」→「エクスポート」→「Java」→「JARファイル」または「実行可能JARファイル」を選択してウィザードに従って生成します。
IDEを使った方法はGUI操作で直感的にjarを作成できるため、ビルドツールに不慣れな方にもわかりやすいでしょう。
まとめ
この記事では、jarファイルの作り方について、jarコマンドの使い方からMaven・Gradleを使ったビルドツールによる生成方法まで詳しく解説しました。
jarコマンドによる手動作成はJDKがあればすぐに試せる基本的な方法であり、実際の開発現場ではMavenやGradleを活用した自動ビルドが主流です。
プロジェクトの規模や用途に応じて最適な方法を選択し、Javaアプリケーションを効率的にパッケージ化してみてください。
今回の内容を活用して、スムーズなJava開発と配布を実現していきましょう。