fichier d'en-tête non valide lors de l'utilisation de jar pour l'archivage
Question
Quand j'utilise cette ligne de commande: jar cmf arshad.mf ars.jar * .class je reçois 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. Le manifeste a-t-il un problème?
La solution
Ajouter un espace après les deux points:
Manifest-Version: 1.0
Main-Class: t
Autres conseils
Oui, c'est vrai.
Une erreur courante que les gens commettent lors de l'écriture de leurs fichiers 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. Cet article 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 l’endurance 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 supérieure, 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.