.jar no encontrará imágenes de los recursos internos, pero programa compilado hace

g_elef:

He estado tratando de cargar algunas imágenes para su uso en mi interfaz de usuario Swing y mientras mi programa compilado se carga correctamente las imágenes, mi .jar no encuentra las imágenes .

En primer lugar, he marcado mi archivo de recursos como "Raíz de recursos". El diseño del proyecto es el siguiente:

proyecto de diseño shown.Outside de la carpeta de origen, existe la carpeta de recursos, y en su interior una carpeta de imágenes con los recursos en cuestión.

El diseño de salida de la compilación es el siguiente:

introducir descripción de la imagen aquí

La disposición .jar se ve así:

introducir descripción de la imagen aquí

Ahora, el código que ha estado cargando las imágenes está dentro de la interfaz gráfica de usuario del paquete; aquí está:

        try {
            System.out.println(this.getClass().getResource("../images/buttonClip.png").getPath());
            attchmntBtnImg = ImageIO.read(getClass().getResource("../images/buttonClip.png"));
            sendMsgBtnImg  = ImageIO.read(getClass().getResource("../images/buttonForward.png"));
        }
        catch (IOException e) {
            e.printStackTrace();
        }

La salida de línea de impresión imprime correctamente la ruta de la imagen

/C:/Users/path/to/Project/out/production/Peer2Party_desktop/images/buttonClip.png

Si bien no hay errores cuando se ejecuta desde la idea intellij, el artefacto genera (si lo ejecuto desde el cmd, con o sin privilegios de administrador) me da una NullPointerException en el System.out.println (), pero, sin duda, eso no es la causa del error, ya que todavía va a estrellarse en la línea siguiente, incluso si quito el println.

introducir descripción de la imagen aquí

He tratado de hacer esto con el fin de cargar las imágenes, sin ningún resultado:

this.getClass().getResource("/../images/buttonClip.png");
getClass().getResource("/../images/buttonClip.png");
this.getClass().getResource("images/buttonClip.png");
getClass().getResource("images/buttonClip.png");
this.getClass().getResourceAsStream("images/buttonClip.png");
getClass().getResourceAsStream("images/buttonClip.png");

Cualquier ayuda es muy bienvenida.

Nota importante: Estoy en Windows 10, los cuadros están dentro de la trayectoria correcta (archivo.jar / images / buttonClip.png), pero en tiempo de ejecución del .class no lo encontrarán

Jens:

Basta con utilizar

this.getClass().getResource("/images/buttonclip.png");

se busca el archivo del directorio raíz del proyecto

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410330&siteId=1
Recomendado
Clasificación