Olá povo, estou tentando criar um .jar mas já fiz diversas coisas e não consegui. Não sei usar nenhuma IDE, somente o JCreator. Criei um Manifest da seguinte forma: manifesto.txt
Manifest - Version 1.0
Create - by: PPI V
Main-Class: PrincipalMenu
E coloquei este arquivo.txt junto a um diretório que contém meu projeto juntamente aos .class. Depois no prompt de comando digitei:
jarcmfvmanifesto.txtacademia.jar".class.
sendo que o arquivo manifesto .txt eu coloquei junto do meu projeto, no mesmo diretório (como ja expliquei).
Depois de fazer isso a mensagem que veio através de prompt de comando foi:
C:\Users\Daniel\Meus documentos\ppi - testes>jar cmfv manifesto.txt academia.jar" .class
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:389)
at java.util.jar.Manifest.read(Manifest.java:182)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at sun.tools.jar.Main.run(Main.java:132)
at sun.tools.jar.Main.main(Main.java:1022)
O que estou fazendo de errado? Estou seguindo as instruções da vídeo aula: http://www.youtube.com/watch?v=2XTCdGSe0Wc Alguém com boa vontade, poderia me dar uma ajuda. Obrigado.
Creio que o problema está na ordem dos parâmetros. Experimente o seguinte:
jar -cfm academia.jar manifesto.txt *.class
A propósito: assegure-se de que o seu arquivo de manifesto possui uma linha em branco no fim. Caso não haja esta linha em branco, haverá problemas ao gerar o JAR.
DANIEL35
Veja a mensagem que apareceu agora, através do prompt:
C:\Users\Daniel\Meus documentos\ppi - testes>jar -cfm academia.jar Manifesto.txt*.class
java.io.FileNotFoundException: Manifesto.txt*.class (A sintaxe do nome do arquivo, pasta ou nome do volume estß incorreta)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at sun.tools.jar.Main.run(Main.java:131)
at sun.tools.jar.Main.main(Main.java:1022)
R
roger_rf
Tem que haver pelo menos um espaço em branco entre o nome “manifesto.txt” e o nome “*.class”, você escreveu os dois nomes “colados”, sem espaço nenhum entre eles.
DANIEL35
Então meu amigo, continua apresentando erros. O que será que está impedindo a execução? Eu dei um "DIR" nesta pasta "PPI - Testes", para que você veja o arquivo manifesto.txt junto as classes. Fiz o que você sugeriu mas como vê, ainda está com erros....
Veja o prompt:
Manifest - Version 5.2
Create - by: PPI V
Main-Class: PrincipalMenu
R
roger_rf
Apague este arquivo “academia.jar .class” que aparece na sua listagem, e tente usar novamente o comando que apresentei inicialmente:
jar -cfm academia.jar manifesto.txt *.class
Vejo que, no último post, você trocou a ordem dos parâmetros passados para o comando JAR. NÃO faça isso.
DANIEL35
Veja o resultado. Dessa vez o comando está igual. Exclui aquele arquivo que você pediu “academia.jar .class”. A pior coisa em programação é isso, cara, …ficar brigando com erros…
C:\Users\Daniel\Meus documentos\ppi - testes>jar -cfm academia.jar manifesto.txt *.class
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:389)
at java.util.jar.Manifest.read(Manifest.java:182)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at sun.tools.jar.Main.run(Main.java:132)
at sun.tools.jar.Main.main(Main.java:1022)
R
roger_rf
A sintaxe do seu arquivo de manifesto está com problemas. Não pode haver espaco em branco junto aos hífens contidos em cada chave, e cada chave deve ser seguida de dois pontos (":"):
[b]
Manifest-Version: 1.0
Created-by: PPI V
Main-Class: PrincipalMenu
[/b]
Não se esqueca de que a última linha do arquivo de manifesto deve estar em branco.
DANIEL35
Como indico a última linha do manifesto em branco?
R
roger_rf
Segue arquivo de exemplo com a última linha em branco. Como o arquivo foi criado no Unix, talvez você tenha problemas em abri-lo no Windows devido à codifcacão das quebras de linha - use o WordPad em vez do Bloco do Notas para ver o conteúdo.
DANIEL35
OK, OK!! Resolvido amigo. Muito obrigado pela atenção e paciência que teve comigo. Que Deus lhe dê em dobro.
O problema estava na formulação do manifesto. Veja o correto:
Manifest-Version: 5.2
Create-by: PPI V
Main-Class: PrincipalMenu
Respeitando exatamente os espaçamentos e pontuações. VALEU.
DANIEL35
DANIEL35:
OK, OK!! Resolvido amigo. Muito obrigado pela atenção e paciência que teve comigo. Que Deus lhe dê em dobro.
O problema estava na formulação do manifesto. Veja o correto: Manifest-Version: 5.2
Create-by: PPI V
Main-Class: PrincipalMenu
Respeitando exatamente os espaçamentos e pontuações. VALEU.