MANIFEST-se (Ja esta funfando)

bom dia/tarde/noite/madrugada pessoal

estou com um problema quando executo meuprograma.jar

eu utilizo o NetBeans

o erro eh: “Failed to load Main-Class manifest attribute from (caminho do meu jar)”

apos dias de buscas aqui no guj e no seu primo mais proximo, o google eu fiz algumas coisas como

mudar o manifest, modificar o manifest e alterar o manifest mas realmente nao deu

eu tenho dois projetos, um que funciona sussa o .jar e o outro que não

===============================================================

o manifest do que funciona (chamado Patch) esta assim:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 11.3-b02 (Sun Microsystems Inc.)
Main-Class: Patch.Patch
Class-Path: lib/jaybird-full-2.1.5.jar lib/grfingerjava.jar
X-COMMENT: Main-Class will be added automatically by build

e do que nao funciona (chamado LeitorDigital)

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 11.3-b02 (Sun Microsystems Inc.)

================================================================

ambos os projetos conectam no firebird

eu ja coloquei o Main-Class e o Class-Path no LeitorDigital mas nao deu…

e tambem quando gero o Patch ele cria uma pasta chamada lib contendo o jaybird-full-2.1.5.jar e grfingerjava.jar mas o leitor digital não.

valeu desde ja pessoal!!

O problema é que falta o valor de Main-Class no MANIFEST. Você disse que tentou adicionar, mas você sabe o que isso significa?

Main-Class é a classe que contém o método main que será chamada ao se executar o JAR. Por exemplo, se temos a classe Runner com o método main, que fica dentro do pacote br.com.exemplo devemos adicionar a seguinte linha ao MANIFEST:

Main-Class: br.com.exemplo.Runner

Verifique se isso se aplica ao seu caso e tente modificar seu MANIFEST.

entao marco, eu fiz isso sim, olha como ficou

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 11.3-b02 (Sun Microsystems Inc.)
Main-Class: ExLeitorDigital.interfaces.Principal

dai eu tentei colocar o class-path tbm e nao deu

eu tentei milhares de combinações de manifest …

informações: a classe principal chama Principal (que contem o main)

o pacote eh ExLeitorDigital.interfaces (eu colocei essse nome pois existe outro pacote contendo umas classes que eu criei)

preciso mto de ajuda, esse software (biometria) esta pronto desde a semana passada e eu nao posso entregar pois nao consigo gerar um executavel dele…

obrgiado desde jah pessoal

As letras maiúsculas e minúsculas estão sendo respeitadas? E ExLeitorDigital é mesmo um pacote ou é o nome do projeto? O nome do projeto não entra aí…

entao, o nome do projeto eh ExLeitorDigital

e o nome do pacote eh ExLeitorDigital.interfaces

isso pode ser o problema? ma pratica?

ps: eu modifico o manifest abrindo ele com o winrar eh assim mesmo que faz?

ps2: cara brigado mesmo pela sua atenção eu to aki na empresa sem fazer totalmente nada esperando as respostas desse topico

Pra ficar mais prático, posta a linha do package e a q tm o nm da classe. Com isso dá pra ajudar mais rápido.

eu nao entendi muito o que voce pedio, mas olha so

o jeito que eu acho que esta certo

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 11.3-b02 (Sun Microsystems Inc.)
Main-Class: ExLeitorDigital.interfaces.Principal

vamos as informações

Nome do projeto: ExLeitorDigital

*Pacotes:
ExLeitorDigital.interfaces{Informes, Principal} obs: o Main principal esta na classe Principal
ExLeitorDigital.procedimentos{Cliente, Conexao, Empresa, Util}

*pacote {classes do pacote}

a primeira linha do arquivo que contem a classe main tem a diretiva package e algumas linhas abaixo, no mesmo arquivo tem a diretiva class. Posta essas duas linhas.

OK. Acho que já é hora de resolver isso, não?

Vejamos. Você abre o arquivo JAR com o WinRAR e obtém a seguinte hierarquia:

META-INF
|_MANIFEST.MF
ExLeitorDigital
|_interfaces
| |_Principal
| |_Informe
|_procedimentos
  |_Cliente
  |_Conexao
  |_Empresa
  |_Util

Se for isso mesmo, edite seu MANIFEST.MF para o seguinte:

Manifest-Version: 1.0

Class-Path: .

Main-Class: ExLeitorDigital.interfaces.Principal 

Creio que essa é a maneira mais simples e funcional para um JAR executável funcionar. Se ainda não conseguir, tente extrair as classes do JAR e gerar um novo JAR (pelo Eclipse ou NetBeans, configurando o Main-Class com o assistente).

pocha marco, eh bem isso mesmo que eu vejo quando eu abro o .jar, porem eu configurei o manifest do jeito que vc passou e deu o erro.

o que vc quis dizer com extrair as classes do jar

ps: malz eu nao saber umas coisas bem simples…eh que eu comecei a mecher com java semana passada, mas valeu a ateção ai cara

entao mano, eu fikei mo bravo e comecei a regassa no google, e descobri que o manifest precisa ter uma ultima linha em branco…daew eu coloquei essa linha e NAO DE O ERRO!!!

XD

mas nao fikei tao feliz pois o software nao rdou (iauhsiuAUISAHUIHiuahiush) mais pocha, agora que eu sei dessa linha eu vou fazer meus 21784351874654897 testes e combinações de manifest denovo

depois eu respondo aqui os resultados dos testes

mais uma vez obrigado pela sua atenção marco XD

cara eu to kuaaazze laaaa

olha soh

Manifest-Version: 1.0

Class-Path: lib/jaybird-full-2.1.5.jar lib/grfingerjava.jar

Main-Class: Principal

agora da um erro dizendo que nao foi possivel encontrar a classe Principal

se eu colocar nomedopacote.Principal ele nem da erro mais nao abre o software tbm

estou testando brother

Manifest-Version: 1.0

Class-Path: lib/jaybird-full-2.1.5.jar lib/grfingerjava.jar

Main-Class: ExLeitorDigital.interfaces.Principal

pronto,eu tenho ctz que eh essa a classe principal…pois eu modifiquei no net bens tirando o ExLeitorDigital.interfaces.Principal e colocando so como principal e o software nao foi (executando no netbeans) e ele pedio pra eu escolher a classe principal mostrando soh uma opção (ExLeitorDigital.interfaces.Principal)

entao eh essa a classe principal

e quando eu rodo o .jar com o manifest configurado assim (como esta acima) nao da erro mas o software nao abre…

e vou parar de postar aqui pois esta lotando de msgs minhas e nao acho isso legal…

se conseguir ai sim eu posto ;D

pronto veio

brigadao…eu ja consegui

o manifest correto eh

Manifest-Version: 1.0

Class-Path: lib/jaybird-full-2.1.5.jar lib/grfingerjava.jar

Main-Class: ExLeitorDigital.interfaces.Principal

e o software nao rodava pois da erro na hora de inicializar o componente biometrico (onde vc coloca o dedo pra le a digital) da esse pau java.io.PrintStream@18ac738

entao esse topico pode ser fechado, pois meu manifest ja esta correto

so preciso ver esse erro agora

valeu marco, pela sua atenção

se possivel da uma dica sobre esse erro

AAAAAEEEEWWWWWWWW

FICO BAAAALLLAAAA

esse erro dava pois o software precisa de um txt junto com ele, pois eh a licenca do componente biometrico

valeu manoooooo

resumindo entao

quando eu gero o .jar eu preciso modificar ele pra ficar bala e colocar o txt

mto obrigado marco

ja falei com o chefe que o software esta pronto

brigadao mesmo

valeu gente

java ai vamos nosssss