Comment ajouter un manifeste dans un fichier Jar

Comment ajouter un manifeste dans un fichier Jar

En Java, vous pouvez utiliser le fichier manifeste pour définir le point d'entrée de l'application, en ajoutant un chemin de classe ou une version de package pour un fichier JAR. Dans ce court didacticiel, nous vous montrerons comment ajouter un fichier manifeste personnalisé dans un fichier Jar.

1. Structure du projet

Supposons qu'il s'agit de la structure de dossiers de votre projet

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

2. Jar It

Utilisez la commande ci-dessous pour créer un fichier Jar et y ajouter votre fichier manifeste personnalisé (manifest.txt).

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

Sortie

$ 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

Un nouveau fichier jar "example.jar" avec un fichier manifeste personnalisé.

$ 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$

Explication

l'option «m» signifie que vous devez inclure votre fichier manifeste personnalisé. Vous devez toujours faire attention à l'ordre des options, les lettres «m» et «f» doivent apparaître dans le même ordre que «manifest» et «jarfile» apparaître.

Par exemple,
Correct statement
«fm» doit correspondre à «example.jar manifest.txt»

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

"Mf" doit correspondre à "manifest.txt example.jar"

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

Mauvaise déclaration

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

Cela ne fonctionnera pas, le système considère que votre fichier manifeste est «example.jar» et provoque une erreur «champ d'en-tête invalide».