[Resolvido] Classe Principal não encontrada

Galera to com o problema:

Quando rodo o sistema no eclipse ele funciona perfeitamente, porem quando exporto ele criando um jar, ele da a mensagem de classe principal nao encontrada.

O arquivo manifest ta assim:

Manifest-Version: 1.0 Main-Class: visao.Principal

Já verifiquei e o arquivo está la no pacote certinho, o que podera ser? Necessito entregar essa aplicação executando.

vc informou para o eclipse onde está seu método main na hora de criar o jar?

Sim!! Informei que estava na classe que eu chamei de Principal, que é a janela principal do sistema.




Bom, aparentemente está tudo certo, tente rodar pelo prompt da seguinte forma…

abra o prompt e navegue até o Desktop ou até o diretóro do jar e digite o comando abaixo, “lembrando que seu Path e Claspath devem estar devidamente configurados”

Desta forma você vai ver qual mensagem de erro dá, dae você posta novamente ok.

java -jar SisCEF.jar

[quote=ribclauport]Bom, aparentemente está tudo certo, tente rodar pelo prompt da seguinte forma…

abra o prompt e navegue até o Desktop ou até o diretóro do jar e digite o comando abaixo, “lembrando que seu Path e Claspath devem estar devidamente configurados”

Desta forma você vai ver qual mensagem de erro dá, dae você posta novamente ok.

java -jar SisCEF.jar[/quote]

Amigo executei como vc pediu e observe o erro:

Bom eu vi que ele ta falando que esta faltando a classe o jasper. Bom até então todos as libs necessárias para exibir o relatório estão na pasta lib. O relatório quando executo direto no eclipse ele exibe normalmente. Eu vi em alguns lugares que no manifest tenho que listar as libs que estou usando será que é isso que ta faltando no meu manifest?

Você precisa incluir a diretiva Class-Path no seu arquivo de manifest, e especificar os libs necessários lá:

Manifest-Version: 1.0 Main-Class: visao.Principal Class-Path: lib/jasper.jar lib/outraLib.jar lib/outraLib.jar lib/outraLib.jar

Não esqueça de usar seu manifest quando estiver gerando o .jar (na terceira tela, selecionar a option Use existing manifest from workspace).

[quote=ViniGodoy]Você precisa incluir a diretiva Class-Path no seu arquivo de manifest, e especificar os libs necessários lá:

Manifest-Version: 1.0 Main-Class: visao.Principal Class-Path: lib/jasper.jar lib/outraLib.jar lib/outraLib.jar lib/outraLib.jar

Não esqueça de usar seu manifest quando estiver gerando o .jar (na terceira tela, selecionar a option Use existing manifest from workspace).[/quote]

Fiz o que você falou, extrai o arquivo manifest do jar, coloquei ele dentro do meu Projeto, fiz as alterações usando o notepad++ e exportei novamente o jar, marcando a opção de usar o manifest existente, porem é exibido esse erro e nao gera o JAR.

Manifest-Version: 1.0 Main-Class: visao.Principal Class-Path: lib/commons-beanutils-1.8.0.jar lib/commons-collections-2.1.1.jar lib/commons-digester-1.7.jar lib/commons-javaflow-20060411.jar lib/commons-logging-1.0.4.jar lib/groovy-all-1.5.5.jar lib/iReport.jar lib/iText-2.1.7.jar lib/jasperreports-3.7.5.jar lib/mysql-connector-java-5.1.17-bin.jar lib/poi-3.6.jar

Olhando penso em duas possibilidades, uma em relação ao caminho lib/xxx.jar em relação ao arquivo manifest. Pode ser que o caminho não esteja “batendo”,
não sei se isso inflluencia mas olhando em algumas referências sempre vi os jars do classpath do manifest separado por “espaços” e no final sempre com uma
linha em branco ou seja coloca-se todas as entradas e depois da um “Enter”, testei com um jar simples e realmente semm o "Enter não funciona seria assim:

[code]Manifest-Version: 1.0  
Main-Class: visao.Principa Class-Path: lib/commons-beanutils-1.8.0.jar lib/commons-collections-2.1.1.jar ..... <Enter> -->não esquecer de dar enter no final.[/code]

Bom outra coisa gostaria do exclarecimento do moderador pois li que quando temos jars referenciados no classpath do manifest precisamos que estes jars
estejam fora do jar, ou sejam empacotado por uma ferramenta como o fajar.

é verdade?

@ribclauport e ViniGodoy

Meus amigos, mais uma vez muito obrigado. Usei as dicas que vcs me ensinaram e deu tudo certo. O arquivos manifest gerado pelo eclipse devia esta com algum erro mesmo, criei a parte como o Vini falou e usando a dica do rib de deixar o enter no final deu certinho ficando assim:

Manifest-Version: 1.0 Main-Class: visao.Principal Class-Path: lib/commons-beanutils-1.8.0.jar lib/commons-collections-2.1.1.jar lib/commons-digester-1.7.jar lib/commons-javaflow-20060411.jar lib/commons-logging-1.0.4.jar lib/groovy-all-1.5.5.jar lib/iReport.jar lib/iText-2.1.7.jar lib/jasperreports-3.7.5.jar lib/mysql-connector-java-5.1.17-bin.jar lib/poi-3.6.jar <enter> <enter>

Desde já muito obrigado a todos.