[RESOLVIDO] JAR não executa, sendo que no IDE não dá erro
21 respostas
dexfelipe
Boa tarde,
Eu fiz um programinha e gerei o arquivo .JAR corretamente (como já fiz com outros 4 programas que já fiz) indicando a classe Main e tudo mais, usando Eclipse IDE (a mesma versão que sempre usei 3.3.2), quando eu executo o programa atravéz do IDE funciona que é uma beleza, mas quando executo através do .jar não funciona.
Vou tentar anexar o programa, eu coloquei até uma mensagem para ver se aparece e aparece, fiz assim no meu Main, a primeira mensagem aparece “mensagem antes de mostrar a tela inicial”:
publicclassMain{publicstaticvoidmain(String[]args){JOptionPane.showMessageDialog(null,"mensagem antes de mostrar a tela inicial");VOTimesheetLOE.login();JOptionPane.showMessageDialog(null,"mensagem depois de mostrar o login");}}
Não sei como encontrar o erro nisso, pois no IDE não dá erro algum…
Se em seu projeto existe algum jar usado como biblioteca, você deve colocá-lo dentro da pasta informada no Class-Path do arquivo Manifest ou então na mesma pasta do jar principal.
dexfelipe
Mikhas,
Ainda não tentei rodar pela linha de comando, como faço (qual a linha de comando)?
renanedpedroso
java -jar nomedojar.jar
Lembrando que você deve estar com o console no mesmo diretório do jar.
dexfelipe
Renan,
O arquivo manifest está sendo gerado automaticamente pelo Eclipse IDE, creio que não haja erros, mas vou verificá-lo mesmo assim.
renanedpedroso
Renan,
O arquivo manifest está sendo gerado automaticamente pelo Eclipse IDE, creio que não haja erros, mas vou verificá-lo mesmo assim.
Poste aí o Manifest gerado e também a estrutura de diretórios e arquivos que você tem ao executar.
tkx
Tente:
Colocar as bibliotecas usadas no projeto dentro da pasta do jar!
Ou mudar o classpath no Manifest!
Ou ainda, usar um plugin do eclipse chamado fatJar! Esse plugin gera um jar com tudo dentro!
O arquivo manifest está sendo gerado automaticamente pelo Eclipse IDE, creio que não haja erros, mas vou verificá-lo mesmo assim.
Poste aí o Manifest gerado e também a estrutura de diretórios e arquivos que você tem ao executar.
Meu manifest gerado ficou assim:
Manifest-Version:1.0Main-Class:timesheetloe.Main
Sobre a estrutura de pastas eu tenho a pasta lib (com os jars importados no buildpath) e a pasta src, dentro da src tem duas pastas “timesheetloe” onde está o Main e outras classes e a pasta “util” com outras classes, basicamente isso.
dexfelipe
tkx:
dexfelipe:
tkx:
Tente:
Colocar as bibliotecas usadas no projeto dentro da pasta do jar!
Ou mudar o classpath no Manifest!
Ou ainda, usar um plugin do eclipse chamado fatJar! Esse plugin gera um jar com tudo dentro!
As bibliotecas usadas já estão dentro do jar.
Como instalo esse plugin fatJar?
Olhe o q eu disse:
Dentro da pasta do Jar. Não dentro do jar!
O q está escrito no manifest, na linha classpath?
Basta abrir o jar com um compactador de arquivos (o jar eh um zip com extensão modificada), na pasta meta-inf estará o manifest.mf
geralmente:
Vc copia a pasta lib do projeto original e cola junto com seu jar, NA MESMA PASTA E NÃO DENTRO DELE!
copiei a pasta lib na mesma pasta que o jar (ja tive esse problema antes com o NetBeans), detalhando programa.jar e diretório lib estão dentro da mesma pasta.
renanedpedroso
Tente informar o Class-Path desta forma, de acordo com os jars que você está utilizando.
Salve isso com o mesmo nome (manifest.mf) e coloque no jar substituindo o que já existe!
Se com isso não funcionar, tente aprender a usar o fatjar…
Não é uma boa prática usar o fatjar, mas ele quebra muitas árvores por ae! Principalmente em casos como o seu!
Mas n tenho nenhum problema ao criar jar pelo netbeans (ide q uso)…