2013-02-24 6 views
0

Hey est-il possible d'obtenir une image à partir du fichier sans utiliser l'emplacement complet du fichier dans Java? Mon code ci-dessous ne fonctionne avec le chemin complet du fichier:Java - Obtenir l'image du chemin du fichier

Icon icon = new ImageIcon("/Users/MyMac/Documents/Project/Software/Project/src/UI/Images/default_pic.png"); 

Est-il possible d'utiliser le chemin du fichier en tant que telle ?:

Icon icon = new ImageIcon("/src/UI/Images/default_pic.png"); 
+2

Essayez de supprimer le premier '/'. – Dukeling

+0

Vous devez définir CLASSPATH correctement. –

+1

merci pour le commentaire utile par opposition à un négatif comme les autres – user1851487

Répondre

2

« /src/UI/Images/default_pic.png » est un chemin absolu, donc il cherchera un répertoire src dans le répertoire racine, puis un sous-répertoire d'interface utilisateur, etc. Ce n'est pas ce que vous voulez.

Vous pouvez utiliser un chemin relatif tel que "src/UI/Images/default_pic.png" (notez qu'il ne commence pas par un "/"), mais comme son nom l'indique, il est relatif au répertoire courant . Donc, cela fonctionnera si votre répertoire actuel est/Users/MyMac/Documents/Project/Software/Project (ou tout répertoire qui contient le fichier dans le même sous-chemin), sinon ce ne sera pas le cas.

Enfin, une autre méthode consiste à accéder au fichier via le chemin de classe. Étant donné que le projet peut être compressé dans un fichier jar, il se peut que le fichier image ne soit pas un fichier distinct sur le disque, mais vous pouvez toujours obtenir une URL ou un InputStream pour y accéder. Recherchez getResource et getResourceAsStream dans Class et ClassLoader.

Questions connexes