Parece bruxaria nao eh? Funciona legal no IDE ou rodando pela linha de comando, mas assim que entra num jar, para de funcionar.
Quase sempre esse eh um problema com as letras maiusculas e minusculas. Veja se voce estah colocando o case correto nos nomes dos gifs e jpegs. Por exemplo, se o arquivo eh OpenIcon.jpeg, tem que passar o nome com o 'O' e o 'I' maiusculos, e todo o resto minusculo.
 
Porque isso? Porque dentro de um jar valem as mesmas regras que valem no programa, ou seja, fica case sensitive. Eh como se estivesse rodando no UNIX. Na verdade, fora do jar tambem eh assim, soh que o Windows nao eh case sensitive, e vai interpretar um pedido para o aquivo OpenIcon.jpeg ou openicon.jpeg como se fosse a mesma coisa.
 
Esse comportamento pode ter consequencias intererssantes. Por exemplo.
Imagine que voce tem um arquivo abc.class e ABC.class no mesmo diretorio (algo totalmente valido em Java e em Unix). Agora voce encapsula a sua aplicacao num jar e manda para uma maquina Windows. 
Vai rodar direitinho, desde que ninguem tente "unzipar" o seu jar, porque o windows vai achar que os dois arquivos sao o mesmo, e uma ClassNotFoundException vai explodir na cara do coitado do usuario.
Mais um exemplo de que Java foi projetetado para rodar em Unix, afinal, a SUN eh uma UNIX shop.
 
Silvio
 
----- Original Message -----
Sent: Friday, May 30, 2003 3:30 PM
Subject: [java-list] quem conseguir resolver isso.....

..... vai tah me ajudando pra caramba...
 
ehahesahesae
 
Pessoal, eh o seguinte.... eu tenho uma classe que utiliza arquivos .jpg e .gif.... coloquei elas em uma pasta diferente, e na hora de instanciar o ImageIcon, tudo bem... passei o caminho... rodou perfeito!!!
 
mas o grande problema é que na hora que eu criei um arquivo .jar com todas essas classes, qdo eu executo o .jar as figuras nao aparecem.... e dentro do .jar estão do mesmo modo, em uma pasta sepadada.....
 
qto a nomenclatura das pastas e tudo mais está perfeito... tanto q se eu extrair o .jar, td funciona... o grande problema eh realmente na hora de executar ele....
 
Alguem me ajuda!!!
ehaeha
 
 
Abraços
 
 
Lucas Teixeira

Responder a