Criando o jar problema no manifest help me

25 respostas
M

Quando tento criar o jar no meu netbeans veja o que acontece e abaixo esta meu manifest sou juvenil ainda e to a dias pra arruma isso ;~

javac: invalid flag: Class-Path:
Usage: javac <options> <source files>
use -help for a list of possible options
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

meu manifest esta assim =>

Manifest-Version: 1.0
Main-Class:  br.com.Programa.Index.Login


Class-Path: mysql-connector-java-5.1.7-bin.jar
X-COMMENT: Main-Class will be added automatically by build

O que estou fazendo de errado dei uma lida aqui nesse post mas nao consegui resolver ainda sou iniciante primeira vez que faço isso alguem pode me ajudar?

25 Respostas

M

eu também to com esse problema…

até consigo abrir o programa, porém quando eu clico em alguma coisa que necessite se conectar com o banco de dados, ele nao abre :S

alguém pode nos ajudar???

M

Manifest-Version: 1.0
Class-Path: mysql-connector-java-5.1.7-bin.jar
Main-Class: br.com.Programa.Index.Login

M

blz… e onde tem que ficar o conector?

na mesma pasta dos .class??

M

ae marcelo, obrigado pela ajuda :smiley:

consegui conectar direitinho! valeu mesmo… e se alguém precisar de ajuda, é só falar :wink:

M

marcelo fis como vc falo e o proble,a continua mesma coisa!

M

consegui criar o jar veja o que aparece no termino do meu shift + f11

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
compile:
Created dir: C:\Documents and Settings\k\Meus documentos\NetBeansProjects\Programa\dist
Building jar: C:\Documents and Settings\k\Meus documentos\NetBeansProjects\Programa\dist\Papelaria.jar
Copy libraries to C:\Documents and Settings\k\Meus documentos\NetBeansProjects\Programa\dist\lib.
To run this application from the command line without Ant, try:
java -jar "C:\Documents and Settings\k\Meus documentos\NetBeansProjects\Programa\dist\Programa.jar"
jar:

poreeeeeeeeeeeeeeeeem quando vou na pasta do meu projeto e abro o jar ele n abre tela alguma ;/

M

alguem ?

T

Moleza, só dar uma lida no que diz este outro tópico.
http://www.guj.com.br/posts/list/72086.java

Abraço.

M

Li la e fis tudo conforme mas primeiro uma dúvida,

1) Todas minhas classes tem o static void main isso n atrapalha em nada?

2) Veja o erro que esta dando quando tento execultar o jar no meu cmd
=> c:\Jar\Programa> jar -cvfm Programa.jar META-INF\MANIFEST.MF
e ele gera esse erro
=> java.io.FileNotFoundException: META-INF\MANIFEST.MF
at: java.io.FileInputStream.open

mais um dia me matando pra arruma isso mas n consigo ;~~ alguem sabe o pq disso pelo erro informa que n encontrou o arquivo MANIFEST.MF? ou dentro do manifest n axou algo? to perdidinho so novato primeira vez que crio um jar na vida! abraco e vlw pela ajuda!

M

ou da acesso negado ;/

T
  1. Não, afinal no seu MANIFEST você informa realmente qual será o seu executável.

  2. Leia novamente, o que está escrito naquele POST é batata que funciona. Veja bemmmm …
    jar -cvfm Programa.jar META-INF\MANIFEST.MF

Somente este comando não funciona mesmo, você tem de informar no final da linha o diretório base para geração do jar então o correto seria.

jar -cvfm Programa.jar META-INF\MANIFEST.MF .

O espaço ponto no final deste comando não é atoa, significa que você esta trabalhando com o diretório atual.

Se executar somente o comando jar ele vai da a sintase correta para execução do comando. Exemplo:
-c (Cria novo arquivo jar)
-v (Mostre o que esta acontecendo)
-f (Crie o arquivo com o nome Programa.jar)
-m (Use o manifesta que está em META-INF\MANIFEST.MF)

É so ter um pouco de atenção. Depois que aprender corretamente como usar estes comandos instale o plugin FatJar que vc vai ver como é mais fácil. Porém e bom aprender como realmente funciona por trás.

M

blz ele criou o jar mas o problem esta sendo agora no seguinte no meu projeto tenho varios pacotes exempl minha main fica no pacote br.com.Index ! quando crio o jar ele cria com 1k so e nem abre pq creio q n criou corretamente como faco em relacao as pastas li la sobre a raiz do amigo la com duvida mas n ficou claro na questao de varios pacotes! obrigado pela atencao!

M

eu tentei colocar todas minhas class na pasta raiz e tentei execultar o comando mas quando dou 2 cliques no jar criado ele n abre nada! e da um som tpo de erro !creio que possa ser pq terei q fazer todas as pastas sincronizadas com o pacote do meu projeto é isso?

M

veja como dexei minha raiz fis outro teste agora e tambem nada realmente nao sie maiso que fazer no meu projeto tao armazenados assim
br.com.Programa.Index
br.com.Programa.BD
etc

para criar o jar fis isso criei uma pasta chamado Programa e coloquei as minhas class certinhas dentro de suas pastas exemplo
c:\Programa\br\com\Programa\Index\Login.Main
c:\Programa\br\com\Program\BD\acessoBD
etc

e no cmd digitei o comando e ele criou o jar com todas as classes porem quando abro o jar ele n abre nada e faz um barulho de erro
veja meu manifest (outra coisa so consegui criar o jar com o manifest sendo .txt e nao .INF ou .MF)

Manifest-Version: 1.0 Main-Class: br/com/Index/Login.Main Class-Path: lib/AbsoluteLayout.jar lib/commons-beanutils-1.7.jar lib/commons-collections2-1.jar lib/commons-logging-1.0.2.jar lib/itext-1.3.1.jar lib/jasperreports-3.0.0.jar lib/mysql-connector-java-5.1.5-bin.jar lib/TimerBean.jar Created-By: 1.6 (Sun Microsystems Inc.) ~

realmente tentei de tudo amigo veja se ainda fis algo errado coloquei o (.) no final tambem certinho mas n vai por nada :frowning:

M

;~

T

Então, com as informações que você me deu sua estrutura de projeto deve estar assim:

- SeuProjeto
   - br
      -com
         -Programa
            - Index
               - Login.class (NÃO PODE EXISTIR O ARQUIVO Login.Main.class)
            - DB
               - acessoDB.class
    - lib
       - AbsoluteLayout.jar 
       - commons-beanutils-1.7.jar
       - commons-collections2-1.jar
       - commons-logging-1.0.2.jar
       - itext-1.3.1.jar
       - jasperreports-3.0.0.jar  
       - mysql-connector-java-5.1.5-bin.jar 
       - TimerBean.jar 
    - META-INF
       - MANIFEST.MF
    - programa.jar (este aparecerá passos adiante)

Agora basta executar os seguintes comandos.

$: cd caminho_da_pasta_SeuProjeto
$: jar -cvfm programa.jar META-INF\MANIFEST.MF .

Então será gerado um arquivo chamado programa.jar dentro da pasta SeuProjeto.
Agora basta digitar:

java - jar programa.jar

Veja quais mensagens apareceram no console, se algum erro acontecer poste aqui!

[Edited]

Olha como deve ficar o MANIFEST.MF

Manifest-Version: 1.0   
Main-Class: br.com.Programa.Login  
Class-Path: lib/AbsoluteLayout.jar   
  lib/commons-beanutils-1.7.jar   
  lib/commons-collections2-1.jar   
  lib/commons-logging-1.0.2.jar   
  lib/itext-1.3.1.jar   
  lib/jasperreports-3.0.0.jar
  lib/mysql-connector-java-5.1.5-bin.jar
  lib/TimerBean.jar
Created-By: 1.6 (Sun Microsystems Inc.)

[/Edited]

Flw.

M

ele criou o jar e quando execulto ele via cmd veja que aparece

Exception in thread "main" java.lang.NoutFoundException: br/com/Programa/Index/Login/Main
Cause by: java.lang.ClassNotFoundException: br.com.Programa.Index.Login.Main

      at .................
      at ................

Could not find the main class: br/com/Programa/Index/Login.Main . Program will exit.
M

creio que o problema seja no manifest alterei ele para isso
Main-Class: Login.Main e o erro deu quase a mesma coisa so altero isso

Exception in thread "main" java.lang.NoutFoundException: Login/Main   
Cause by: java.lang.ClassNotFoundException: Login.Main   
  
      at .................   
      at ................   
  
Could not find the main class: Login.Main . Program will exit.
T

Caracassss… vou ter que fazer um video. Olha só, veja novamente o meu post acima. Vou desenhar o MANIFEST.MF também.

Obs:

Até.

M

cara realmente deve ter algo errado fis denovo conforme me falou coloquei o manifest como vc me recomendou crio o jar, e quando vou execultar o jar via cmd da

Exception in thread "main" java.lang.NoutFoundException: br/com/Programa/Index/Login    
Cause by: java.lang.ClassNotFoundException: br.com.Programa.Index.Login

olha meu manifest

Main-Class: br.com.Papelaria.Index.Login

corrétisimo agora e nao vai nem a marretada :frowning: na minha classe login tenho la o metodo static void main(String[] args) só isso ja basta para mim poder chamar a classe como Main né? e setar no manifest? sei la cara n sei o q fazer mais

T

Você está errando estes pacotes ai. Veja só, quando tentou executar o .jar ele diz que não achou o diretório br/com/Programa/Index/Login, agora pelo seu manifest está é br.com.Papelaria.Index.Login

O certo é br/com/Programa/Index/Login ou br/com/Papelaria/Index/Login? Presta atenção cara, treco fácil desse.

M

o certo é br.com.Programa.Index.Login e no meu manifest esta assim eu q digitei errado aqui no post, la no manifest esta escrito corretamente e o com esse prblema q te falei!

meu manifest

Main-Class: br.com.Programa.Index.Login

o que digito para criar o jar

jar -cvfm programa.jar META-INF\manifest.txt .

ele cria o jar adicionando o manifest e quando dou o comando

java -jar programa.jar

aparece o erro =>

Exception in thread "main" java.lang.NoClassDefFoundError: br/com/Programa/Index/Login 
Cause by: java.lang.ClassNotFoundException: br.com.Programa.Index.Login 

Could not find the main class:  br.com.Programa.Index.Login . Program will exit.

Pasta raiz esta em c:\Programa e dentro dessa pasta tem as pastas br, lib , META-INF, programa.jar(gerado apos os comando no cmd)
tenho certeza que digitei tudo corretamente!

porém nada de jar funcionando :frowning:

M

devo mecher em java_home ou path ou classpath? na minha variavel de ambiente para criar o jar corretamente? eu acredito muito que o problema vem de la

T

Arg. Pela saída do console o problema acontece porque o java nao acha o metodo main na sua classe Login. Então o problema pode ser duas coisas:

  • MANIFEST está errado. Faça o seguinte: Pare de usar Manifest.txt. Tente com Manifest.mf (esta extensão não é reconhecida pelo windows mas você abri-la com a opção abrir como… usando o bloco de notas)

Depois de gerar o .jar tente abrir o jar através de um programa de descompressão tipo o winzip. Navegue ate a pasta META-INF e veja se o seu MANIFEST continua como configurado.

  • Sua classe está errada. Poste sua classe aqui para poder analisar. De repente seu main está errado ou o pacote usado na classe também não condiz com sua estrutura de diretórios.
V

estou com o mesmo problema, não estou conseguindo criar o jar do projeto. ocorre uma execption dizendo que não encontrou as classes do hibernate. Entretanto vi que foram exportadas e estão dentro da pasta lib do jar!

a execption foi:

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/criterion/Criterion
Caused by: java.lang.ClassNotFoundException: org.hibernate.criterion.Criterion
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

e o manifest esta:

Manifest-Version: 1.0
Main-Class: br.empresa.org.br.FormPrincipal
Class-Path: hibernate3.jar
Criado 26 de março de 2009
Ultima resposta 19 de jun. de 2009
Respostas 25
Participantes 5