マニフェストを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」とみなし、「無効なヘッダーフィールド」エラーを引き起こします。