Problema ao carregar imagem a partir do jar  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Criei um código simples que carrega uma imagem, no SWT... Quando executo a aplicação pelo Eclipse a imagem carrega perfeitamente e tudo funciona, porém após gerar o JAR e tentar executar pelo Sistema Operacional ele está dizendo que não encontra a imagem, sendo que a pasta e a imagem estão dentro do jar, é ridículo!

Caused by: java.io.FileNotFoundException: imagens\tabuleiro.png (O sistema não pode encontrar o arquivo especificado)

dentro do jar tenho uma pasta chamada imagens, e dentro dessa pasta tenho um arquivo chamado tabuleiro.png

O que estou fazendo de errado? Pela lógica nada!

Obrigado
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Minha dúvida é tão ridícula, o erro é tão estúpido que até pra vocês fica foda responder né? :/

Que droga, alguém por favor chuta ae!

Obrigado!
Gerson da S. Lima
JavaChild
[Avatar]

Membro desde: 26/03/2009 10:06:27
Mensagens: 142
Localização: Manaus
Offline

Cara, antes de fazer um post eu acho melhor vocêdá uma pesquisada pra vê se alguém já postou alguma coisa parecida com o seu problema, eu acho que na semana passada já respondi a dois posts como esse mesmo problema.
O que tá acontecendo é que não está encontrando o path da imagem, dá uma conferida no path e se tu tá carregando a imagem tipo:



ou algo parecido faz assim



se ele não conseguir carregar a imagem não vai dar erro, só não vai mostrar a imagem.

Bacharel em Ciências da Computação

Analista de Sistemas
[Email] [MSN]
luizlcfc
Debugger

Membro desde: 05/04/2005 09:04:45
Mensagens: 55
Offline

Se a imagem está dentro de um jar tem que usar o getResource
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

Em 20 min voce já que a resposta.. calma aew..

Então.

Como voce carrega a imagem?

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

eu estava fazendo assim:

tabuleiroComposite.setBackgroundImage(new Image(Display.getDefault(),"imagens/tabuleiro.png"));

mas quando coloquei assim:

tabuleiroComposite.setBackgroundImage(new Image(Display.getDefault(),getClass().getResourceAsStream("imagens/tabuleiro.png")));

passou a dar este erro, e no proprio eclipse, nem gerando jar

Exception in thread "main" java.lang.IllegalArgumentException: Argument cannot be null

Obrigado por enquanto
Gerson da S. Lima
JavaChild
[Avatar]

Membro desde: 26/03/2009 10:06:27
Mensagens: 142
Localização: Manaus
Offline

luizlcfc wrote:Se a imagem está dentro de um jar tem que usar o getResource


Não é obrigatório, pode sim colocar somente o path sem o getResource(), mas o problema dele com certeza é path que está errado, quando comecei a programar em java e criava os arquivos .jar tive esse mesmo problema quando comecei a usar getResource() até que descobri que era o path.

Bacharel em Ciências da Computação

Analista de Sistemas
[Email] [MSN]
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Gerson da S. Lima wrote:
luizlcfc wrote:Se a imagem está dentro de um jar tem que usar o getResource


Não é obrigatório, pode sim colocar somente o path sem o getResource(), mas o problema dele com certeza é path que está errado, quando comecei a programar em java e criava os arquivos .jar tive esse mesmo problema quando comecei a usar getResource() até que descobri que era o path.



mas eu não comecei a programar ontem... Sou programador C há anos e tenho certeza que o path está certo! existe a pasta e a imagem dentro dela!
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Se o path está errado, prq q de dentro do eclipse funciona? incrível neh!
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20570
Localização: Curitiba/PR
Offline

ATENÇÃO:
1. O path é relativo ao classpath da sua aplicação: O getResourceAsStream leva o ClassPath como raiz, não o path do disco;
2. Que o caminho é idêntico, levando em consideração letras maiúsculas e minúsculas. O sistema de arquivos não é case sensitive, no caso do Windows, mas no caso do .jar é;

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20570
Localização: Curitiba/PR
Offline

aloha wrote:Se o path está errado, prq q de dentro do eclipse funciona? incrível neh!


É problema de path sim. A questão é que o path do eclipse baseia-se no sistema de arquivos, e o do .jar no jar. Um é case sensitive, outro não. Um está com a raiz na raiz do seu classpath, outro pode estar em qualquer pasta de execução do eclipse configurada em seu projeto.

Como você mesmo comprovou, rodar no eclipse não é garantia de nada.

This message was edited 1 time. Last update was at 01/04/2009 14:10:14


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Gerson da S. Lima
JavaChild
[Avatar]

Membro desde: 26/03/2009 10:06:27
Mensagens: 142
Localização: Manaus
Offline

aloha wrote:Se o path está errado, prq q de dentro do eclipse funciona? incrível neh!


Depois das palavras do Vinicius (ViniGodoy), você se convenceu que é o path.

This message was edited 1 time. Last update was at 01/04/2009 14:38:38


Bacharel em Ciências da Computação

Analista de Sistemas
[Email] [MSN]
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Ta certo! é o path... mas qual a solução afinal? ta tudo minusculo!
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Minha mentalidade é de C, eu penso apenas logicamente, não consigo interpretar conceitos do java. Pra mim se funciona no eclipse teria de funcionar fora também, aprece obvio! Eu não nasci pro java mesmo, só que na faculdade o java é a linguagem escolhida pelos professores :/

Obrigado por enquanto!
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Pelo que li tenho que colocar no classpath o caminho do meu jar, mas isso não tem fundamento pois se eu colocar em outra pasta ele nao ira funcionar!

por favor alguem ajuda ae!

valew
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team