Je suis en train d'écrire un programme que je dois envoyer à un ami en pot. Le programme a des images qui doivent être chargées pour que le programme fonctionne correctement et je veux que tout soit contenu dans un pot. Actuellement, il ne fonctionne pas à partir du fichier exécutable ou lorsque je l'exécute via la ligne de commande. Cela fonctionne cependant dans netbeans.Mon fichier jar ne chargera pas les images
Voici le code que je utilise:
Pour charger l'image que je utilise:
protected ImageIcon createImageIcon(String path, String description)
{
java.net.URL imgURL = getClass().getClassLoader().getResource(path);
if (imgURL != null)
{
return new ImageIcon(Toolkit.getDefaultToolkit()
.getImage(imgURL),description);
}
else
{
System.err.println("Couldn't find file: " + path);
return null;
}
}
pour l'URL que j'ai aussi essayé juste
getClass().getResource(path)
La ligne où l'image est censée être créée est:
this.img =createImageIcon(File.separator+"."+File.separator
+"resources"+File.separator+"tiles"+File.separator+"tile.png","tile");
Mon fichier jar est configuré avec le dossier contenant les fichiers de classe et le dossier de ressources au niveau supérieur de celui-ci.
J'ai cherché des moyens de résoudre ce problème, mais je ne trouve rien qui fonctionne.
Merci.
Sur votre fonction « createImageIcon » êtes-vous dans le nom de fichier passait où l'image va être créé? Parce que si c'est le cas, cela signifie que le fichier est sauvegardé dans /./resources/tiles/tile.png "ce qui équivaut à" /resources/tiles/tile.png "qui serait au niveau racine du système de fichiers. Dans ce cas, il ne sera pas trouvé par votre chemin de classe une fois que vous l'avez déployé –
que diriez-vous d'utiliser/à la place de File.separator et d'avoir "/resources/titles/tile.png" au lieu de "/./resources/titles/tile .png "qui peut être un chemin incorrect selon le système – dvhh