Maison >Java >javaDidacticiel >Comment charger des fichiers de ressources à partir de la ligne de commande à l'aide de « 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!