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

?
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top