Utiliser des resources dans Eclipse

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 :

  1. 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.
  2. Dans la boîte de dialogue qui s'ouvre, entrez le nom du répertoire à créer, ici data, puis cliquez sur Finish.
  3. 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épertoire src, 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 rsrc.xml et placé dans le répertoire data créé plus haut :

String fileName =
    getClass().getResource("/rsrc.xml").toURI().getPath();

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.