Cuando hacemos deploy de nuestras aplicaciones Java queremos distribuir generalmente la menor cantidad de archivos individuales. Para eso, distribuir tu aplicación como un Jar file es lo más conveniente. El tema llega a la hora de referenciar a recursos e imágenes dentro del Jar. Aca veremos como solucionar éste tema.

Hay que utilizar getResourceAsStream() para que nuestro código sea portable en vez de utilizar esta vieja técnica:

InputStream in = new FileInputStream("images/image.png");

Cuando corre éste código explota básicamente porque sigue buscando el recurso dentro del filesystem y no dentro del Jar.

El modo correcto de encarar éste llamado es:

InputStream in = this.getClass().getResourceAsStream("images/image.png");

Esta porción de código busca images/image.png de modo relativo  a la locación de la clase referenciada y también funciona perfectamente con recursos dentro de un Jar file.

Categories: java

Rodrigo Asensio

Apasionado por la tecnología

Leave a Reply

Your email address will not be published. Required fields are marked *