Acessar arquivo de dentro de um .jar

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:

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 =)

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

Sem testar:

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

Marcio Kuchma