実行可能 JAR ファイルをビルドする
ここでは、下記のような com.example.myapp.Main クラスの main メソッドを実行できるような JAR ファイルを作成することを考えます。
package com.example.myapp;
public class Main {
public static void main(String args...) {
System.out.println("Hello");
}
}コンパイルします。ここでは、build ディレクトリ以下にクラスファイルが出力されるように指定しています。
$ mkdir build
$ javac -d build src/com/example/myapp/*.java
次に、エントリポイントとなるクラスを指定するために、マニフェストファイルを作成します。 ファイル名は何でも構いません。
Manifest-Version: 1.0
Main-Class: com.example.myapp.Mainあとは、クラスファイルとマニフェストファイルを JAR アーカイブにまとめれば完成です。
$ jar cvfm myapp.jar manifest.txt -C build com
マニフェストが追加されました
com/を追加中です(入=0)(出=0)(0%格納されました)
com/example/を追加中です(入=0)(出=0)(0%格納されました)
com/example/myapp/を追加中です(入=0)(出=0)(0%格納されました)
com/example/myapp/Main.classを追加中です(入=425)(出=295)(30%収縮されました)
- 注意点
- JAR ファイル名と、マニフェストファイル名は、
jarコマンドオプションのfとmの指定順序通りに並べて指定する必要があります。 - クラスファイルのルートディレクトリを
-C buildというオプションで指定します。これを指定しておかないと、JAR ファイルにbuildディレクトリごと取り込まれてしまい、実行時にMainクラスが見つからなくなります。
- JAR ファイル名と、マニフェストファイル名は、
念のためアーカイブの内容を確認しておきます。 下記のような構成になっていればバッチリです。
$ jar tf myapp.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/example/
com/example/myapp/
com/example/myapp/Main.class
実行可能 JAR ファイルを実行する
作成した JAR ファイルは、下記のように java コマンドに -jar オプションを指定することで実行することができます。
$ java -jar myapp.jar
Hello
Windows などでは、JAR ファイルをダブルクリックすることでも実行することができます。