file di intestazione non valido durante l'utilizzo di jar per l'archiviazione
Domanda
Quando uso questa linea cmd: vaso cmf arshad.mf ars.jar * .class ottengo questo errore:
invalid header field name:Manifest-version
Questo è il mio file manifest:
Manifest-Version: 1.0
Main-Class:t
Ho creato il file manifest con notepad nella codifica UTF-8 - c'è qualche problema con manifest?
Soluzione
Aggiungi uno spazio dopo i due punti:
Manifest-Version: 1.0
Main-Class: t
Altri suggerimenti
Sì, è vero.
Un errore comune che le persone commettono quando scrivono i loro file manifest per Jar è che non inseriscono spazi dopo i due punti. Non lo so, in base a ciò che hai scritto qui, se è così o no, ma provalo.
Esempio:
Main-Class:someClass //wrong
Main-Class: someClass //correct
Inoltre, il file manifest deve essere salvato come UTF-8. Non sei necessariamente sicuro di scriverlo su MS Notepad e salvarlo come codifica UTF-8. Questo post ha alcuni buoni dettagli:
Nome campo intestazione non valido quando si aggiunge manifest su JAR usando Eclipse
Blocco note aggiunge alcuni byte in primo piano per trasmettere l'endianità dei dati. Questo interromperà il comando jar. Una soluzione decente è quella di non utilizzare Notepad e scaricare Notepad ++. In Notepad ++ seleziona "codifica" dalla barra in alto e seleziona "UTF-8 senza distinta componenti". Il salvataggio del file manifest con questa impostazione applicata dovrebbe risolvere il problema. Se non ce ne sono altri.