inválido arquivo de cabeçalho ao usar jar para arquivamento
Pergunta
Quando eu uso esta linha cmd: jar CMF arshad.mf ars.jar * .class eu recebo este erro:
invalid header field name:Manifest-version
Este é o meu arquivo de manifesto:
Manifest-Version: 1.0
Main-Class:t
i fez o arquivo de manifesto com bloco de notas na codificação UTF-8 - não há qualquer problema com o manifesto
?Solução
Adicionar um espaço após os dois pontos:
Manifest-Version: 1.0
Main-Class: t
Outras dicas
Sim, é verdade.
Um erro comum que as pessoas fazem ao escrever seus arquivos de manifesto para jar é que eles não colocar espaços após seus dois pontos. Eu não sei, com base no que você escreveu aqui, se é isso ou não, mas experimentá-lo.
Exemplo:
Main-Class:someClass //wrong
Main-Class: someClass //correct
Além disso, o arquivo de manifesto deve ser salvo como UTF-8. Você não é necessariamente seguro escrevê-lo em MS Notepad e salvar como UTF-8. Este post tem alguns detalhes bons:
inválido cabeçalho Nome do campo ao adicionar manifesto JAR usando Eclipse
Notepad adiciona alguns bytes para a frente para transmitir o endian-ness dos dados. Isso vai quebrar o comando jar. A solução decente é não usar o bloco de notas e de download Notepad ++. No bloco de notas ++ você selecionar 'codificação' na barra superior, e selecione 'UTF-8 sem BOM'. Salvando o seu arquivo de manifesto com essa configuração aplicada deve resolver o problema. Se não houver outros.