Lendo arquivos Jar

8 respostas
C

Boa tarde pessoal.

Eu estou em um processo há um bom tempo. Por favor me ajudem.

Eu queria pegar um pacote de imagens e compacta-los em um único jar, para posteriormente eu carrega-los na minha aplicação as imagens diretamente para um Objeto Image.

Alguém tem uma luz?

Agradeço desde já.

8 Respostas

I

Não tem erro, ao empacotar tua aplicação (em um jar) crie um diretório images, por exemplo, e coloque as imagens dentro. Empacote tudo no jar e na hora de referenciá-las, use:

//...
final String path = getClass().getResource("./images/photo.gif");
//...

Acho que deve funcionar, T+

B

“iktuz”:
Não tem erro, ao empacotar tua aplicação (em um jar) crie um diretório images, por exemplo, e coloque as imagens dentro. Empacote tudo no jar e na hora de referenciá-las, use:

//...
final String path = getClass().getResource("./images/photo.gif");
//...

Acho que deve funcionar, T+

E não esqueça de coloca-lo no classpath da sua aplicação.

I

Se for dentro do mesmo jar da aplicação não é necessário colocar no class-path. Ex.:

META-INF/MANIFEST.MF  -> Main-Class: br.com.app.Main
br/com/app/Main.class
br/com/app/Janela.class
br/com/app/Teste.class
images/photo.gif

Basta executá-lo “java -jar app.jar”

C

Devo ser uma anta!

Fiz o codigo e não consegui ele retorna null, já passei como parametro no classpath a pasta contendo as imagens que se encontra na pasta src do NetBeans.

O código abaixo é o meu teste cobaia.

java.net.URL str = this.getClass().getResource("./Imagens/Logo/Logo.gif");

java.awt.Image img = Toolkit.getDefaultToolkit().getImage(str);

this.getGraphics().drawImage(img, 30, 30, 20, 20, this);

Algum erro no código?

I

O problema está no endereço ou no arquivo de imagem em si? Quando carrego imagens para ícones por exemplo, faço assim:

//...
getClass().getResource("/icons/info.gif").getImage();
//...

Como está a estrutura do jar da tua aplicação? T+

C

A estrutura da pasta é:
Imagens/Logo/Logo.gif

Fiz de duas maneiras:
1- Jogando a pasta Imagens no src
2 - Formando um jar desta pasta e jogando no classpath

Detalhe, este programa que estou escrevendo é uma aplicação desktop, não sei se há difrerença entre WEB para aplicação.

I

Como exemplo segue uma estrutura de jar que tenho aqui:

META-INF/
META-INF/MANIFEST.MF
icons/
icons/logo.gif
br/com/app/gui/
br/com/app/gui/Main.class

A referência tomo como base o diretório raíz da aplicação. Então a chamada é assim:

getClass().getResource("/icons/logo.gif");

Experimente usar sem o ponto na frente do endereço. No teu caso seria algo como:

URL url = getClass().getResource("/Imagens/Logo/Logo.gif");

Já havia tentado assim?

C

Desculpa, amigo.

Eu escrevi o caminha errado mesmo
além de Logo.gif
escrevi Log.gif

Valeu pela ajuda :grin:

Criado 18 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 8
Participantes 3