Jar com imagens == problema

salve galera, alguem pode me ajudar a gerar um jar executavel com imagens?

eu ja vi no forum um monte de solução mas nenhuma funcionou comigo.

Eu tenho a seguinte estrutura:

- Desktop (projeto raiz)
 	- src
 	- jar:
    		- hibernate3.jar
    		- hibernate-annotations.jar
    		- hibernate-commons-annotations.jar
    		- hibernate-entity-manager.jar
    		- hibernate-validador.jar
    		- commons.jar
    		- ejb3-persistence.jar
    		- jta.jar
		- imagens.jar (aqui está minhas imagens)
			Dentro do imagens.jar tem essa estrutura:
				- imagem/addDeclaracao.png;
				- imagem/viewDeclaracao.png;
				- imagem/logo.png;
				- imagem/print.gif;
				- imagem/sair.png;
				- imagem/eraser.png;

e no codigo eu já tentei colocar assim:

imagemLogo.setIcon(new ImageIcon(getClass().getResource("./imagem/logo.png"))); imagemLogo.setIcon(new ImageIcon(getClass().getResource("/imagem/logo.png"))); imagemLogo.setIcon(new ImageIcon(getClass().getResource("imagem/logo.png"))); imagemLogo.setIcon(new ImageIcon("./imagem/logo.png"));
E nada deu certo.

No meu manifest.mf eu declarei o jar de imagens, ficando assim tb:

Manifest-Version: 1.0
Rsrc-Class-Path: ./ imagens.jar hibernate-validator_2.jar dom4j-1.6.1_2.jar hibern
 ate-commons-annotations_2.jar xercesImpl.jar imagens.jar hibernate3_2
 .jar commons-logging-1.0.4.jar jta.jar hibernate-annotations_2.jar hi
 bernate3.jar commons-collections-2.1.1_2.jar hibernate-entitymanager.
 jar commons-collections-2.1.1.jar hibernate-entitymanager_2.jar hsqld
 b.jar hibernate-annotations.jar ejb3-persistence_2.jar hibernate-vali
 dator.jar dom4j-1.6.1.jar ejb3-persistence.jar jta_2.jar hibernate-co
 mmons-annotations.jar commons-logging-1.0.4_2.jar
Class-Path: .
Rsrc-Main-Class: br.srv.desktop.tela.Login
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

veja se ajuda
http://guj.com.br/java/239346-jar-nao-executa-e-nao-dar-erro

Olá,

Eu direto uso imagens nos meus programas, salvo o .jar e elas não “desaparecem”. E não faço nada de complicado para dar certo.

Considere um Projeto simples no NetBeans, de forma que eu tenha um Pacote chamado “Codigos”, e nele estejam minhas classes que estão “chamando” essas imagens.

Suponha que eu tenha um Botão e nele tenha uma imagem:

btabrir = new JButton("Abrir", new ImageIcon(getClass().getResource("/img/abrir.png")));

Para que essa imagem “abrir.png” apareça no .jar, basta eu criar um novo Pacote “ao lado” desse “Codigos”. Esse pacote eu coloco o nome de “img”. E dentro dele solte as imagens.
Logo, quando a linha de codigo acima chamar a imagem, ela buscará esse pacote “img” (pois eu coloquei ‘img’ lá na linha de código).

Feito isso, ainda estamos no PROJETO. No NetBeans, Clique no menu “Executar”, e clique em “Limpar e Construir projeto principal”. Pronto! Suas imagens estarão embutidas nesse .jar gerado!

P.S.: Verifique direitinho se o diretorio na linha de código está batendo com o diretório do Projeto. E esse exemplo que estou te falando FUNCIONA! Acabei de testar aqui, inclusive levando o .jar para outro PC.

Qualquer coisa poste aí!

Enfrentei esse mesmo problema, e quando fui ver era porque eu tinha salvo o arquivo como “logo.PNG” no package e eu estava settando o ícone como você descreveu…

imagemLogo.setIcon(new ImageIcon(getClass().getResource("/imagem/logo.png")));    

Aí, dentro da IDE, dava tudo certo, e quando exportava o Jar não aparecia pois apresentava erro durante sua execução.
Bem, verifiquei porque esse erro era por causa da extensão que no package estava [b].PNG/b e no ImageIcon estava [b].png/b.

Então, bastou colocar a extensão do ImageIcon como .PNG

imagemLogo.setIcon(new ImageIcon(getClass().getResource("/imagem/logo.PNG")));    

Ou renomear a figura e colocar .png

estava lendo pois tb tenho problemas com isto as vezes. conseguistes resolver[url]?

aquele ponto antes do nome da pasta, não atrapalha não[/url]?

valeu.

Bem, eu nunca mais tive problemas com isso…

oi

estou com o mesmo problema, imgs funcionam no netbeans, mas nao no jar depois de limpar e construir ‘-’

aki esta um exemplo de como é o codigo:

ah, e sou novo no forum u.u

obrigado

na imagem q vc postou nao tem 4f.png, existe essa imagem lá?

eu uso assim, sem a barra no inicio

Icon iconeConexaoLt = new ImageIcon(this.getClass().getClassLoader().getResource(“imagens/lt.PNG”));

e a imagem fica no caminho

\src\imagens\lt.PNG

Certifique-se que as letras maiúsculas/minúsculas são idênticas. Isso não faz diferença para o Windows, mas faz para o .jar.

Além disso, também se certifique que o caminho começa com / e que a pasta está dentro do seu classpath (ou seja, seria uma pasta onde você poderia colocar código fonte).

Finalmente, retire o espaço em branco que tem depois do nome de todos os seus arquivos. Esse espaço está antes de você fechar aspas.

Sobre as diferenciação de tamanho eu já sabia e.e

Retirei os espaços, e você dizer sobre ser uma pasta que poderia colocar código fonte fez eu lembrar que tinha feito uma “Pasta” para as imgs, e nao um “Pacote” ‘-’

Obrigado pela ajuda e pelo gatilho ViniGodoy. E eduJava, nao precisei fazer isso, só era mudar o tipo de pasta mesmo ^^