Images introuvables dans un .jar (NullPointerException...)
Bonjour, j'ai eu envie d'intervenir a propos du probleme des images qui ne sont pas retrouvees a l'execution du jar via un un exe ou pas, car j'ai rencontre ce probleme tres recemment, et en fait dans mon cas il ne s'agissait pas d'un probleme de path, ou de logiciel tiers qui a construit mon jar ou autre, mais bel et bien d'un probleme de codage de la maniere de coder le chargement de chaque. En fait en codant de la maniere suivante, mon code fonctionnait lorsque mon projet n'etait pas compresse, mais j'avais un probleme de NullPointerException s'agissant de ces memes images lorsque je voulais executer mon .jar (projet compresse) du projet :
Icon floppy = new ImageIcon(getClass().getResource(<image name>));
En fait, j'ai resolu le probleme (le projet s'execute qu'il soit sous forme de .jar ou non) en introduisant une petite classe placee directement dans le dossier (ou package selon la perspective choisie) des images de mon projet, celle-ci devenant ainsi l'intermediaire pour tous mes chargements d'images dans les classes de n'importe quels packages.
Voici le code de la classe:
package eitremux.img;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class EITRemuxImageLoader {
public EITRemuxImageLoader() {
}
public static Icon getIcon(String imgName) {
try {
InputStream in = EITRemuxImageLoader.class.getResourceAsStream(imgName);
return new ImageIcon(ImageIO.read(in));
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
}
}
Et voici le code maintenant insere dans une classe quelconque pour charger mon image:
Icon floppy = EITRemuxImageLoader.getIcon(<image name>);
Si ca peut aider quelqu'un..
JC