Eclipse – Utilisation de resources
Il est parfois utile d'associer à un projet Java un ou plusieurs fichiers dont le contenu doit être accessible à l'exécution. Par exemple, ces fichiers pourraient être des images à utiliser pour l'interface utilisateur.
Dans le monde Java, ces fichiers sont nommés resources. Eclipse permet d'ajouter de tels fichiers resource à un projet, auxquels il est ensuite facile d'accéder à l'exécution au moyen de méthodes de l'API Java.
Pour qu'un fichier resource soit disponible à l'exécution, il faut le placer dans un répertoire source du projet Eclipse auquel il est associé. Par défaut, chaque projet Eclipse ne comporte qu'un seul répertoire source, nommé src
. C'est ce répertoire qui contient généralement la plupart des fichiers Java du projet, à l'exception des tests.
Même s'il est techniquement possible de placer les fichiers resources dans le répertoire src
, à côté des fichiers Java, il est plus propre de les stocker dans un répertoire séparé réservé à cet effet. Dans ce qui suit, nous utiliserons un répertoire nommé data
, mais n'importe quel autre nom (parlant) convient.
Pour ajouter un fichier resource à un projet Eclipse, il convient tout d'abord de créer le répertoire qui le contiendra, nommé ici data
, et de définir ce dernier comme un répertoire source. Cela se fait ainsi :
- Dans l'explorateur de paquetages (Package Explorer), sélectionnez votre projet puis, dans le menu File d'Eclipse, choisissez le sous-menu New puis l'entrée Folder.
- Dans la boîte de dialogue qui s'ouvre, entrez le nom du répertoire à créer, ici
data
, puis cliquez sur Finish. - Dans l'explorateur de paquetages, sélectionnez le répertoire nouvellement créé puis cliquez sur le bouton droit de la souris pour ouvrir le menu contextuel, dans lequel vous choisirez le sous-menu Build Path puis l'entrée Use as Source Folder. A ce moment, l'icône associée au répertoire
data
deviendra identique à celle associée au répertoiresrc
, indiquant que tous les deux sont des répertoires source.
Une fois ces opérations effectuées, vous pouvez placer dans le répertoire data
de votre projet tous les fichiers resource nécessaires. Cela peut se faire simplement en copiant les fichiers en question dans le répertoire data
, généralement au moyen de l'explorateur de fichiers de votre système d'exploitation.
L'accès aux fichiers resource depuis Java se fait au moyen des méthodes getResource
et getResourceAsStream
de la classe java.lang.Class
. Ces deux méthodes prennent en argument le nom de la resource en question, qui est simplement le nom du fichier précédé d'une barre oblique (/
).
L'extrait de code ci-dessous montre comment obtenir, sous forme de chaîne de caractères, le nom du fichier correspondant à la resource nommée myresource.xml
et placé dans le répertoire data
créé plus haut :
String fileName = getClass().getResource("/myresource.xml").getFile();
Comme vous le constatez, le nom du répertoire de resource, ici data
, n'apparaît pas dans le nom de la resource, car Eclipse fusionne le contenu de tous les répertoires source.
Attention : la méthode getFile
ci-dessus ne retourne pas un nom de fichier valide si le chemin d'accès de la resource contient des caractères « spéciaux » comme des espaces ou des lettres accentuées. Assurez-vous donc qu'aucun des noms des répertoires contenant la resource, p.ex. celui de votre espace de travail (workspace) Eclipse, ne soit composé de tels caractères.
De manière générale, vous vous éviterez beaucoup de problèmes en prenant l'habitude de ne nommer vos répertoires et fichiers qu'au moyen de caractères alphanumériques — de a à z, de A à Z ou de 0 à 9 — ou de caractères « souligné » (_
) ou tiret (-
). La plupart des autres caractères posent un problème dans une situation ou une autre.