Lorsque j'essaie d'exécuter la commande suivante:
java.io.IOException: invalid header field at java.util.jar.Attributes.read(Attributes.java:410) at java.util.jar.Manifest.read(Manifest.java:199) at java.util.jar.Manifest.<init>(Manifest.java:69) at sun.tools.jar.Main.run(Main.java:171) at sun.tools.jar.Main.main(Main.java:1176)
5 Réponses :
Je suppose qu'il y a un problème avec votre fichier manifeste. Donnez-vous à voir si vous avez une faute de frappe au nom d'une variable d'en-tête. P>
"JAR -CVMF" au lieu de "JAR CVFM" devrait résoudre l'erreur ci-dessus P>
Vérifiez que votre fichier manifeste.txt contient le contenu de cette manière: p>
Classe principale: <"nom du paquet">. <"Nom de la classe principale">. Classe <"Newline"> Strong> P>
Notez que la nouvelle ligne / retour de chariot est nécessaire pour l'analyse. p>
Voir ce lien
http://docs.oracle.com/javase/tatuutoriel/Deployment/jar /appman.html p>
J'ai résolu un problème similaire. C'est toujours le premier en-tête manifeste rend Jar lancer un "en-tête invalide" IoException. Donc, je suppose que c'est que le chômage d'un fichier UTF-8 fait que le pot ne comprenne pas. Bien que je pense avoir lu quelque part qui disant qu'un fichier manifeste doit être codé UTF-8, j'ai enregistré mon fichier MF à ANSI avec le bloc-notes de Windows et JAR vient d'arrêter de se plaindre du nom d'en-tête. P>
Une erreur stupide à faire (ce que j'ai fait) était de faire jar cvfm manifeste.txt myjar.jar * .class code> au lieu de
jar cvfm myjar.jar manifeste.txt * .class code> p>