はじめに
このチュートリアルでは、Java の実行可能 JAR ファイルのマニフェストファイルにメインクラスを指定する手順を説明します。この記事の最後まで読むと、マニフェストファイルを適切に設定し、簡単に実行できる自己完結型の Java アプリケーションを作成する方法が理解できるようになります。
実行可能 JAR ファイルの理解
Java 開発の世界では、実行可能 JAR (Java Archive) ファイルは Java アプリケーションのパッケージ化と配布において重要な役割を果たしています。実行可能 JAR ファイルは、コマンドラインから直接実行できる特殊なタイプの JAR ファイルで、メインクラスを手動で指定する必要がありません。
実行可能 JAR とは何か?
実行可能 JAR ファイルは、特殊なマニフェストファイルで構成された JAR ファイルです。マニフェストファイルには、JAR ファイルのメタデータが含まれており、JAR ファイルが実行されたときに実行されるメインクラスも含まれています。
実行可能 JAR ファイルの利点
実行可能 JAR ファイルを使用することにはいくつかの利点があります。
- ポータビリティ:実行可能 JAR ファイルは、Java ランタイム環境 (Java Runtime Environment, JRE) がインストールされたあらゆるシステムで実行できるため、アプリケーションのポータビリティが向上します。
- 簡便性:ユーザーは、JAR ファイルをダブルクリックするか、コマンドラインから実行するだけでアプリケーションを実行でき、特定のメインクラスを知る必要がありません。
- 配布性:実行可能 JAR ファイルは、アプリケーションを実行するために必要なすべてのコンポーネントを含んでいるため、簡単に配布して他の人と共有することができます。
実行可能 JAR の構成要素
実行可能 JAR ファイルは、以下の主要な構成要素で構成されています。
- JAR ファイル:コンパイルされた Java クラス、リソース、その他のサポートファイルを含む JAR ファイル自体です。
- マニフェストファイル:JAR ファイルの
META-INFディレクトリにあるMANIFEST.MFという名前の特殊なファイルです。このファイルには、JAR ファイルのメタデータが含まれており、実行されるメインクラスも含まれています。
graph TD
A[Executable JAR File] --> B[JAR File]
A --> C[Manifest File]
B --> D[Compiled Java Classes]
B --> E[Resources]
C --> F[Main-Class Attribute]
実行可能 JAR ファイルの構造と構成要素を理解することで、マニフェストファイルを構成し、独自の実行可能 JAR ファイルを作成する能力が向上します。
マニフェストファイルの設定
実行可能 JAR ファイルを作成する鍵は、マニフェストファイルを適切に設定することです。マニフェストファイルは、JAR ファイルの META-INF ディレクトリにある特殊なファイルで、JAR ファイルに関するメタデータが含まれており、実行すべきメインクラスも含まれています。
マニフェストファイルの構造
マニフェストファイルは特定の形式に従い、各エントリは改行で区切られ、キーと値はコロン (:) で区切られます。以下は基本的なマニフェストファイルの例です。
Manifest-Version: 1.0
Main-Class: com.labex.example.Main
この例では、Main-Class 属性が、JAR ファイルが実行されたときに実行されるメインクラスの完全修飾名を指定しています。
マニフェストファイルの設定
マニフェストファイルを設定するには、テキストエディタや jar コマンドラインツールなどを使用できます。以下は、Ubuntu 22.04 システムで jar コマンドを使用してマニフェストファイルを作成する例です。
## Create a new directory for the project
mkdir my-project
cd my-project
## Compile the Java classes
javac com/labex/example/Main.java
## Create the manifest file
echo "Main-Class: com.labex.example.Main" > MANIFEST.MF
## Create the JAR file with the manifest
jar cvfm my-app.jar MANIFEST.MF com/
この例では、まずプロジェクト用の新しいディレクトリを作成し、Java クラスをコンパイルします。次に、Main-Class 属性をメインクラスの完全修飾名に設定してマニフェストファイルを作成します。最後に、jar コマンドを使用して、マニフェストファイルとコンパイルされた Java クラスを指定して実行可能 JAR ファイルを作成します。
マニフェストファイルを適切に設定することで、JAR ファイルが実行可能で、ユーザーによって簡単に配布および実行できることを保証できます。
実行可能 JAR のビルドと実行
これでマニフェストファイルを設定したので、実行可能 JAR ファイルをビルドして実行する準備ができました。このプロセスには、Java クラスのコンパイル、JAR ファイルの作成、そして JAR ファイルの実行が含まれます。
実行可能 JAR のビルド
実行可能 JAR ファイルをビルドするには、jar コマンドラインツールを使用できます。以下は、Ubuntu 22.04 システムでこれを行う方法の例です。
## Compile the Java classes
javac com/labex/example/Main.java
## Create the manifest file
echo "Main-Class: com.labex.example.Main" > MANIFEST.MF
## Create the JAR file with the manifest
jar cvfm my-app.jar MANIFEST.MF com/
この例では、まず Java クラスをコンパイルし、次に Main-Class 属性を持つマニフェストファイルを作成し、最後に jar コマンドを使用して、マニフェストファイルとコンパイルされた Java クラスを指定して実行可能 JAR ファイルを作成します。
実行可能 JAR の実行
実行可能 JAR ファイルをビルドしたら、java コマンドを使用して実行できます。以下は例です。
java -jar my-app.jar
このコマンドは、マニフェストファイルで指定されたメインクラスを実行し、Java アプリケーションを起動します。
また、ファイルマネージャーで JAR ファイルをダブルクリックするか、macOS では open コマンドを使用して、実行可能 JAR ファイルを実行することもできます。オペレーティングシステムは自動的に JAR ファイルを実行可能ファイルとして認識し、Java アプリケーションを起動します。
これらの手順に従うことで、独自の実行可能 JAR ファイルを簡単にビルドして実行でき、Java アプリケーションの配布と実行が容易になります。
まとめ
この Java チュートリアルでは、実行可能 JAR のメインクラスを指定するためにマニフェストファイルを設定する方法を学びました。マニフェストファイルの構造と、実行可能 JAR をビルドして実行するための必要な手順を理解することで、異なるシステムで簡単に配布および実行できる自己完結型の Java アプリケーションを作成できるようになりました。



