7
votes

Qu'est-ce que java.io.ioException: champ d'en-tête non valide?

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)


0 commentaires

5 Réponses :


6
votes

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.


0 commentaires

0
votes

"JAR -CVMF" au lieu de "JAR CVFM" devrait résoudre l'erreur ci-dessus


0 commentaires

1
votes

Vérifiez que votre fichier manifeste.txt contient le contenu de cette manière:

Classe principale: <"nom du paquet">. <"Nom de la classe principale">. Classe <"Newline">

Notez que la nouvelle ligne / retour de chariot est nécessaire pour l'analyse.

Voir ce lien http://docs.oracle.com/javase/tatuutoriel/Deployment/jar /appman.html


0 commentaires

0
votes

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.


0 commentaires

0
votes

Une erreur stupide à faire (ce que j'ai fait) était de faire jar cvfm manifeste.txt myjar.jar * .class au lieu de jar cvfm myjar.jar manifeste.txt * .class


0 commentaires