Acessar arquivo de dentro de um .jar

3 respostas
jcvijr

Como faço para acessar um arquivo texto de dentro do .jar? Me falaram que dá pra usar ClassLoader, mas não me explicaram direito…

Agradeço se puderem ajudar :slight_smile:

3 Respostas

peczenyj

Como assim acessar um arquivo ?

Vc pode acessar uma Classe, desde que ela esteja no seu classpath, pois o jar é um ‘zip’ com todas as classes compiladas. Não precisa de classloader.

Agora se vc enfiou um arquivo não .class la dentro e quer recuperar… hum… ai é interessantel alguem nos explicar =)

aoqfonseca

Voce pode utilizar o metodo getResourceStream da Class para pegar o arquivo dentro do jar.

Agora qualquer coisa dentro do seu jar está visivel para vc como se fosse um arquivo numa pasta. Sendo assim basta colocar o caminho.

Segue abaixo copia do javadoc

public InputStream getResourceAsStream(String name)

Finds a resource with a given name. This method returns null if no resource with this name is found. The rules for searching resources associated with a given class are implemented by the defining class loader of the class.

This method delegates the call to its class loader, after making these changes to the resource name: if the resource name starts with "/", it is unchanged; otherwise, the package name is prepended to the resource name after converting "." to "/". If this object was loaded by the bootstrap loader, the call is delegated to ClassLoader.getSystemResourceAsStream.

Parameters:
    name - name of the desired resource 
Returns:
    a java.io.InputStream object. 
Throws:
    NullPointerException - if name is null.
Since:
    JDK1.1
See Also:
    ClassLoader
kuchma

Sem testar:

try { Properties p = new Properties(); properties.load(getClass().getResourceAsStream("/resource/client.properties")); } catch (Exception e) { e.printStackTrace(); }

Marcio Kuchma

Criado 28 de março de 2006
Ultima resposta 29 de mar. de 2006
Respostas 3
Participantes 4