Problema ao criar jar pelo eclipse

32 respostas
R

ae galera!! sou novo no forum (acho q da pra perceber ne? hehe).
bom, meu problema eh o seguinte:

eu fiz um programinha no eclipse, e durante esse programa tem um jLabel q exibe uma imagem jpg…
mas qdo eu criei o .jar pelo eclipse na hora que era pra botar a imagem no label ele nao bota!! mas qdo eu rodo a aplicacao pelo eclipse ela roda normalmente!!! a linha d codigo q eu uso pra botar a imagem no label eh essa:

labelFoto.setIcon(new ImageIcon(getClass().getResource("/emocoes//fotos//" + foto)));

emocoes eh o nome do meu package e as imagens tao no diretorio fotos que ta dentro do package… c alguem puder me ajudar seria muito legal =]
obrigado

32 Respostas

Ricardo_Siqueira

Acho q vc tem que indicá-la no MANIFEST…no eclipse ela aparece porque não usa o Manifest como referencia.

Machado107

Você conferiu se as imagens estão mesmo dentro do jar?

Qualquer coisa tenta fazer pelo ant que você tem mais controle de que e como ta indo pra dentro do jar.

R

qdo eu abrbo o jar com o winrar o diretorio das fotos ta la sim… com todas as fotos dentro!!!

Ricardo_Siqueira

Então é o problema no seu manifest mesmo.

R

como q eu tnho q fazer entao pel oeclipse?

Ricardo_Siqueira

Pra falar a verdade eu também apanho muito na hora de exportar um jar pelo eclipse.

Isso aqui me ajudou muito:

http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#JAR%20Manifest

Ricardo_Siqueira

Abre o seu manifest(se não tiver um faça um) e coloque manualmente…mais fácil.

GustavoTavone

existe esse plugin do eclipse que pega tudo do seu projeto e enfia em um jar.

http://fjep.sourceforge.net/

inclusive as dependencias

Mais da uma olhada no manifest, pq vc tem fazer referencia a img provavelmente deve ser isso

R

mas oq q eu tenho q botar dentro do manifest para que ele reconheca o diretorio com as fotos???
abraco

R

eu tenho q botar uma referencia para cada imagem no manifest??? no diretorio eutenho 84 imagens!

Ricardo_Siqueira

ratone:
mas oq q eu tenho q botar dentro do manifest para que ele reconheca o diretorio com as fotos???
abraco

O diretório com as fotos oras bolas.
Só não sei se vc tem q setar uma por uma ou se o diretório inteiro serve.
Mas dá uma olhada naquela especificação q eu mandei…lá deve dizer

Ricardo_Siqueira

Class-Path :
The value of this attribute specifies the relative URLs of the extensions or libraries that this application or extension needs. URLs are separated by one or more spaces. The application or extension class loader uses the value of this attribute to construct its internal search path.

Logo:

Class-Path: seuPacote.seuDiretorio

DEVE servir

R

po, desculpa, eu so bem newbie hehhehe
eu nunca criei um manifest, entao to bem perdido hehehe
mas eu fiz o manifest assim, e nao ta funcionando…

Main-Class: emocoes.Tristmedo
Class-Path: emocoes.fotos

o erro q ele da eh : “Failed to load Main-Class manifest atribute from C:…”

oq q eu fiz errado???
mal pela pentelhação hehehe

R

sera que alguem pode me ajudar???
nao to conseguindo de jeito nenhuma!!! nunca fiz um manifest na minha vida!!!
vlw!

Q

Cara, aproveitando que vc também é novo, e derrepente poderá me ajudar…
Como eu faço para postar algo no forum, pois para min não aparece nada a não ser responder os tópicos já criados…

bhá se der ajuda ae…abraço…

Ricardo_Siqueira

Você salvou seu manifest no formato correto? apontou pra ele na hora de criar o jar?

R

sim ,eu salvei como manifest.txt e salvei ele na pasta domeu projeto, uma antes do package… e na hora de criar o jar eu mandei o eclipse usar um manifest q eu ja tinha criado e apontei pra ele!!!

R

Qvieira, no indice de topicos da seçao q vc quer postar tem la um botao novo topico =]

Ricardo_Siqueira

Duas coisas…ou vc salva ele como manifest.mf ou você coloca essa linha no seu txt.

Name: seuPacote/ClassePrincipal.class

Só lembrando que sua classe principal é a que tem seu método Main

Ricardo_Siqueira

Se não der certo faz um teste…cria o jar manualmente e veja se as imagens aparecem.

R

qdo eu fui criar o jar manualmente eu segui um tutorial, mas o prompt nao reconheceu o comando jar… =/

Ricardo_Siqueira

Ok…vc está usando que Sistema Operacional?

Ricardo_Siqueira

teu sistema não está reconhecendo o programa -jar

você tem que adcionar o bin da jdk no seu path(se for windows)

Ricardo_Siqueira

http://www.guj.com.br/posts/list/30472.java

divirta-se

R

eu criei o jar manualmente… meu manifest tava assim:

Main-Class: tristMedo.Tristmedo
Name: tristMedo/Tristmedo.class
Class-Path: tristMedo.fotos

no prompt eu fui ate a pasta onde estava o manifest (na pasta anterior a pasta do package) e digitei a seguinte linha:

jar cfm emoc.jar manifest.txt tristMedo*.*

ele criou o jar, mas qdo eu mandei ele rodar pelo prompt mesmo (java -jar emoc.jar) ele deu o mesmo erro… roda o programa, mas qdo era pra ele botar a foto no jLabel ele nao bota, no prompt aparece isso:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(Unknown Source)
        at tristMedo.Tristmedo$4.actionPerformed(Tristmedo.java:295)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

eu verifiquei e o diretorio com as fotos (tristMedo\fotos) se encontra no jar… nao sei mais oq fazer!!!

ps: tristMedo eh o nome do package e Tristmedo eh o nome da classe principal.

Ricardo_Siqueira

Descompacta seu jar e dentro da pasta WEB-INF vai ter um arquivo MANIFEST.MF

Como ele tá?

R

nao existe psta WEB-INF… mas tem a pasta META.INF e nela tem o manifest.mf… ele ta assim:


Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
Main-Class: tristMedo.Tristmedo
Name: tristMedo/Tristmedo.class

Ricardo_Siqueira

ratone:
nao existe psta WEB-INF… mas tem a pasta META.INF e nela tem o manifest.mf… ele ta assim:


Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
Main-Class: tristMedo.Tristmedo
Name: tristMedo/Tristmedo.class

ratone tem algum erro no Manifest q vc fez originalmente.
Repara que a JVM não setou o pacote com suas fotos

Coloca isso:

Class-Path: tristMedo.fotos

na ultima linha desse manifest que o jvm criou… gera o jar outra vez e aponta pra ele.

R

eu fiz isso… agora no manifest.mf deentro do .jar ta escrito Class-Path: tristMedo.fotos
mas o erro continua!!!

R

eu tentei tirar as fotos da pasta fotos e botar direto na pasta tristMedo, e d novo, deu certo no eclipse, mas nao deu no jar… =/
sera q o problema ta em como eu adiciono a imagem ao label??? eu to fazendo assim:

labelFoto.setIcon(new ImageIcon(getClass().getResource("/tristMedo//" + foto)));

tem algum outro jeito q eu posso fazer isso pra testar???

abraço

M

cara voce conseguiu colocar as fotos no seu .jar ??
to precisando fazer isso tambem ??

valeu

D

também estou com o mesmo problema… venho tentando a uns dias já e nada…

ja ouvi falar em classpatch, referências dinâmicas, “” “/” … e por ai vai… mas NADA resolveu

no eclipse funciona, no .jar na pasta em que estão gravador os arquivos do eclipse (workspace dentro da pasta do teu projeto) as imagens funcionam no .jar

… mas se tu colocar em qualquer outro lugar… nada feito…

sem imagens

WE NEED HELP!!!

Criado 6 de abril de 2006
Ultima resposta 26 de nov. de 2008
Respostas 32
Participantes 7