Java - ¿Cómo cargar una imagen de forma portátil? (es decir, ¿no especificando una dirección absoluta?)

Estoy creando una aplicación que tendrá una ventana emergente con una imagen. He mirado tutoriales para cargar imágenes en Java en línea, y todos parecen especificar la dirección absoluta de la imagen. Eso es genial hasta que alguien ejecute mi aplicación en su máquina. Entonces, ¿hay alguna manera de cargar una imagen de manera robusta? ¿Para que no importe en qué máquina esté?

preguntado el 22 de mayo de 12 a las 15:05

3 Respuestas

Incluya la imagen en el archivo JAR y use ClassLoader.getResource ?

contestado el 22 de mayo de 12 a las 15:05

Supongo que creará un archivo JAR con todas sus clases e imágenes. Puedes hacer algo como:

BufferedImage background = ImageIO.read(getClass().getResource("/images/background.png"))

Esto cargará la imagen relativa a la base de su aplicación.

contestado el 22 de mayo de 12 a las 15:05

Si está instalando la aplicación en la máquina de alguien, puede almacenar la raíz de la estructura del directorio como parte de su instalación. Luego, en tiempo de ejecución, el archivo de imagen será relativo a esta raíz. O puede hacer algunas suposiciones sobre este directorio raíz. por ejemplo, el directorio desde donde se ejecuta la aplicación. O puede hacer esto configurable por el usuario.

contestado el 22 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.