Como obtengo la ruta de una imagen que esta dentro de la carpeta de mi proyecto en JAVA

publicado por: Anonymous

La imagen se esta guardando en por ejemplo
C:UsersabcDownloadsProyectoimagen.png y dentro de esa carpeta estan las subcarpetas del proyecto pero necesito una direccion que sirva en todas las computadoras, entonces como hago para que encuentre la imagen dentro de esa carpeta
la imagen no la puedo poner una carpeta images y usar srcimagesimagen.png o imagesimagen.png
Como se hace

solución

Lo que estás preguntando se resuelve a partir del la propia clase que estás ejecutando mediante el uso de su classloader.

Supón que tu proyecto tiene incluido en su classpath una carpeta llamada doc y en la que hay un archivo llamado test.pdf. Para obtener la ruta física completa a ese recurso has de ejecutar lo siguiente:

<instanciadetuclase>.getClass().getClassLoader().getResource("doc/test.pdf");

También puedes conseguir lo mismo con

<nombredetuclase>.class.getClassLoader().getResource("doc/test.pdf");

Si en vez de usar getResource() usas getResourceAsStream() ya tendrás un InputStream para leer directamente el contenido de ese fichero.

Por último, un par de detalles a tener en cuenta:

  • getClass().getClassLoader().getResource(), busca la ruta que indiques como parámetro a partir de la raíz de la carpeta en que estén todos los binarios
  • getClass().getResource() es muy similar, pero busca la ruta pasada a partir de la ruta en que se encuentra la clase que esté haciendo la invocación.

Usando el ejemplo de antes, suponiendo que la clase que ejecuta el código está en un paquete, estas dos llamadas devolverían el mismo resultado:

<instanciadetuclase>.getClass().getClassLoader().getResource("doc/test.pdf");
<instanciadetuclase>.getClass().getResource("/doc/test.pdf");

Espero haberte ayudado.

Respondido por: Anonymous

Leave a Reply

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