Reconhecendo arquivos dentro de um .JAR

9 respostas
richardpeder

Pessoal:

Gostaria de saber se existe alguma forma de eu reconhecer um arquivo qualquer (pode ser um gif por exemplo) dentro de um JAR

tem como??

valeu

9 Respostas

Paulo_Silveira

Usa o método da classe Class, getResourceAsStream
da uma olhada no java doc.

normalmente voce faz assim

Object.class.getResourceAsStream(“a.gif”);

e ele procura o a.gif que nem um louco, independente de onde esteja, ele até procura dentro de JARs que estão no classpath da virtual machine que está rodando.

R

valeu pela dica Paulo…

mas isso permite com q eu recupere as imagens q estao dentro do meu .jar, junto com minha aplicacao??

tenho tudo (imagens, classes) dentro de um unico .jar…

Paulo_Silveira

permite sim, pode testar aí!
aliás, é altamente recomendável você usar isso ao invés de abrir o jar como um zip.

R

bom Paulo, deixe-me explicar melhor minha situacao p/ q nao haja duvidas…

minha aplicacao usa algumas figuras q estao no disco…ate ai tudo bem…
consigo fazer algo do tipo, gerar um .jar das classes da minha aplicacao e as imagens tb, e fazer com q ela ainda reconheca essas imagens???

as imagens e as classes estao no mesmo .jar…

Paulo_Silveira

a resposta continua sim :slight_smile:

jareia tudo e usa o getResourceAsStream apra pegar um InputStream ao arquivo que voce quer, nao importando se ele esta ou nao dentro do jar, que ele se vira

R

caro Paulo…

nao consegui usar o metodo q vc me passou…
ele retorna um InputStream…e parei por ai…

como posso implementar meu programa p/ q ele pegue a minha imagem .jpeg, jogue-a em um ImageIcon e coloque esse icone em um label ou algo parecido p/ mostrar na tela??

obrigado

Paulo_Silveira
URL url = Object.class.getResource("minhaimagem.gif");
ImageIcon ii = new ImageIcon(url);

algo desse tipo
Voce poderia fazer pelo inputstream, mas teria de criar um array de bytes a mais, duplicando uso de memória.

richardpeder

Cara, pelo codigo que vc passou ao rbarioni na ultima resposta, a url esta vindo nula e estav vindo nullpointerexception quando executa…o que pode ser feito???
valeu

wendel2s

Sempre preciso buscar algum arquivo dentro do jar então criei um método estático que faz isso, :)

public class FileUtis {

	public static BufferedReader carregar(String nomeDoArquivo){
		InputStream resourceAsStream = FileUtis.class.getResourceAsStream(nomeDoArquivo);
		InputStreamReader in = new InputStreamReader(resourceAsStream);
		return new BufferedReader(in);
	}

}
Criado 21 de novembro de 2002
Ultima resposta 21 de out. de 2011
Respostas 9
Participantes 4