fichier d’en-tête non valide lors de l’utilisation de jar pour l’archivage

Quand j’utilise cette ligne de commande: jar cmf arshad.mf ars.jar * .class j’obtiens cette erreur:

invalid header field name:Manifest-version 

Ceci est mon fichier manifeste:

 Manifest-Version: 1.0 Main-Class:t 

J’ai créé le fichier manifeste avec le bloc-notes au format UTF-8. Existe-t-il un problème avec le manifeste?

Ajouter un espace après les deux points:

 Manifest-Version: 1.0 Main-Class: t 

Oui c’est vrai.

Une erreur courante commise par les personnes qui écrivent leurs fichiers de manifeste pour les fichiers jar est de ne pas mettre d’espaces après leurs deux-points. Je ne sais pas, sur la base de ce que vous avez écrit ici, si c’est ça ou pas, mais essayez-le.

Exemple:

 Main-Class:someClass //wrong Main-Class: someClass //correct 

De plus, votre fichier manifeste doit être enregistré au format UTF-8. Vous n’êtes pas nécessairement sûr de l’écrire sur MS Notepad et de l’enregistrer au format UTF-8. Ce post a quelques bons détails:

Nom de champ d’en-tête non valide lors de l’ajout d’un manifeste à JAR à l’aide d’Eclipse

Le Bloc-notes ajoute quelques octets au premier plan pour diffuser la finalité des données. Cela cassera la commande jar. Une solution décente consiste à ne pas utiliser Notepad et à télécharger Notepad ++. Dans Notepad ++, sélectionnez “Encodage” dans la barre du haut, puis “UTF-8 sans nomenclature”. L’enregistrement de votre fichier manifeste avec ce paramètre devrait résoudre le problème. S’il n’y en a pas d’autres.