Maison > Java > javaDidacticiel > le corps du texte

Comment charger des fichiers de ressources à partir de la ligne de commande à l'aide de « getClass().getResource() » ?

DDD
Libérer: 2024-11-06 17:00:03
original
1011 Les gens l'ont consulté

How to Load Resource Files from the Command Line Using `getClass().getResource()`?

Chargement de fichiers à l'aide de getClass().getResource()

Lorsque vous travaillez avec des fichiers de ressources, comme les fichiers de propriétés, une approche courante consiste à utiliser getClass().getResource(path) pour les charger. Cependant, des différences surviennent lors de l'exécution de code à partir de la ligne de commande et dans un IDE comme Eclipse.

Comportement dans Eclipse

Dans Eclipse, getClass().getResource( path) charge efficacement les fichiers du dossier source. Si le fichier de ressources (par exemple, Test.properties) est placé dans le même package que le fichier Java, il est accessible dans Eclipse sans aucun problème.

Problème de déploiement en ligne de commande

Lors du déploiement de l'application en dehors d'Eclipse à l'aide de la ligne de commande, le fichier de ressources peut ne pas être présent dans le chemin de classe. Par conséquent, getClass().getResource(path) ne parviendra pas à charger le fichier, ce qui entraînera une exception de pointeur nul.

Solution

Pour résoudre ce problème, assurez-vous que le fichier de ressources est inclus dans le chemin de classe. Ceci peut être réalisé en plaçant le fichier dans le même répertoire que le fichier de classe compilé ou en le regroupant dans un fichier JAR.

Approche alternative

Au lieu d'utiliser getClass ().getResource(path), pensez à utiliser getClass().getResourceAsStream(path) pour créer un InputStream pour le fichier de ressources. Cette méthode évite d'avoir à convertir l'URI en fichier et gère le chargement de fichiers à partir de diverses sources, telles que le système de fichiers, un fichier JAR ou via un réseau.

Enfin, faites attention à l'argument transmis à la méthode getClass().getResourceAsStream. L'utilisation de Foo.class.getResourceAsStream("Test.properties") chargera le fichier à partir du même package que Foo, tandis que Foo.class.getResourceAsStream("/com/foo/bar/Test.properties") chargera le fichier à partir du paquet spécifié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal