マニフェストを指定したJARファイル作成

JAR ファイルの基本的な作成方法については、「JAR ファイルの作成」で説明しました。

ここでは JAR マニフェストとソースコード *.java があるときに、 JAR ファイルを作成する方法について説明します。

ソースコードは「最小限の JavaFX アプリケーション」のものです。 コードの内容に付いてはそちらを参考にしてください。

JAR ファイルを作成する準備

まず、現在のディレクトリ以下の構成は次のようになっているとします。

$ tree
.
├── com
│   └── keicode
│       └── java
│           └── testapps
├── Manifest.txt
└── src
    └── com
        └── keicode
            └── java
                └── testapps
                    └── MinFx1.java

9 directories, 2 files

tree コマンドは、ディレクトリの階層構造をツリー表示するための Linux でのコマンドです。 Windows でも使えますが、上記とは少し表示が違います。Windows ではファイル名も表示するためには /F オプションを指定します。

tree /F

MacOS では Homebrew を利用してインストールすることができます。

brew install tree

src というディレクトリ以下にソースコードが保存されていて、 com/keicode/java/testapps 以下に *.class ファイルを保存します。

MinFx1.java は次の内容です。

package com.keicode.java.testapps;
import javafx.application.Application;
import javafx.stage.Stage;

public class MinFx1 extends Application {
	@Override
	public void start(Stage primaryStage) throws Exception {
		primaryStage.show();
	}
}

マニフェスト Manifest.txt は次の通りです。

Manifest-Version: 1.0
Class-Path: .
Main-Class: com.keicode.java.testapps.MinFx1

準備は以上です。それではソースコードをコンパイルして JAR ファイルを作成しましょう。

JAR マニフェストを指定して JAR ファイルを作成

次のコマンドでソースコード MinFx1.java をコンパイルします。

javac -d . ./src/com/keicode/java/testapps/MinFx1.java

javac はデフォルトでソースコード *.java と同じ場所にクラスファイル *.class を作成します。

今回は、より現実的な例として、クラスファイルをパッケージディレクトリ以下に生成するので、 -d オプションで生成先のディレクトリを指定しています。今回の場合は現在のディレクトリをドット . で指定しています。

成功すれば、MinFx1.class が作成されるはずです。

$ tree
.
├── com
│   └── keicode
│       └── java
│           └── testapps
│               └── MinFx1.class # クラスファイルが作成された
├── Manifest.txt
└── src
    └── com
        └── keicode
            └── java
                └── testapps
                    └── MinFx1.java

9 directories, 3 files

マニフェストを指定して JAR ファイルを作成します。jar コマンドの cfm オプションを指定しています。

jar cfm MinFx1.jar Manifest.txt ./com/keicode/java/testapps/MinFx1.class

成功すれば MinFx1.jar が生成されます。

これは次のコマンドで実行できるはずです。

java -jar MinFx1.jar

次の画面のように空っぽのウィンドウが表示されれば成功です。

ここで使ったソースコード内には main メソッドがありませんが、JavaFX アプリケーションとしてはこれで動作します。

以上、マニフェストを指定して jar ファイルを作成する簡単な例を示しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Java 入門