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:
El diseño de salida de la compilación es el siguiente:
La disposición .jar se ve así:
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.
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
Basta con utilizar
this.getClass().getResource("/images/buttonclip.png");
se busca el archivo del directorio raíz del proyecto