JARファイルにマニフェストを追加する方法

マニフェストをJarファイルに追加する方法

Javaでは、マニフェストファイルを使用してアプリケーションのエントリポイントを定義し、JARファイルのクラスパスまたはパッケージバージョンを追加できます。 この短いチュートリアルでは、カスタムマニフェストファイルをJarファイルに追加する方法を示します。

1. プロジェクト構造

これがプロジェクトのフォルダー構造であると仮定します

/workspace/test/classes/com/example/awt/AwtExample.class
/workspace/test/classes/manifest.txt

2. ジャーイット

以下のコマンドを使用して、Jarファイルを作成し、カスタムマニフェストファイル(manifest.txt)を追加します。

jar -cvfm example.jar manifest.txt com/example/awt/*.class

出力

$ jar -cvfm example.jar manifest.txt com/example/awt/*.class
added manifest
adding: com/example/awt/AwtExample$1.class(in = 638) (out= 388)(deflated 39%)
adding: com/example/awt/AwtExample.class(in = 879) (out= 540)(deflated 38%)
example@laptop:~/workspace/JavaTips/bin$

3. Done

カスタムマニフェストファイルを含む新しい「example.jar」jarファイル。

$ jar tf example.jar
META-INF/
META-INF/MANIFEST.MF
com/example/awt/AwtExample$1.class
com/example/awt/AwtExample.class
example@laptop:~/workspace/JavaTips/bin$

説明

オプション「m」は、カスタムマニフェストファイルを含めることを意味します。 オプションの順序には常に注意する必要があります。文字「m」および「f」は、「manifest」および「jarfile」と同じ順序で表示する必要があります。現れる。

たとえば、
Correct statement
「fm」は「example.jarmanifest.txt」と一致する必要があります

 jar -cvfm example.jar manifest.txt com/example/awt/*.class

「mf」は「manifest.txt example.jar」と一致する必要があります

 jar -cvmf manifest.txt example.jar com/example/awt/*.class

間違った声明

jar -cvfm manifest.txt example.jar com/example/awt/*.class

これは機能せず、システムはマニフェストファイルを「example.jar」とみなし、「無効なヘッダーフィールド」エラーを引き起こします。