Maison > Java > javaDidacticiel > Pourquoi getResourceAsStream renvoie-t-il Null lors du chargement de ressources à partir d'un JAR et comment puis-je y remédier ?

Pourquoi getResourceAsStream renvoie-t-il Null lors du chargement de ressources à partir d'un JAR et comment puis-je y remédier ?

Barbara Streisand
Libérer: 2024-12-20 07:59:10
original
334 Les gens l'ont consulté

Why Does getResourceAsStream Return Null When Loading Resources from a JAR, and How Can I Fix It?

Résolution de « getResourceAsStream renvoie Null » pour le chargement de ressources à partir d'un JAR

Lors de la tentative de chargement d'un fichier texte à partir d'un package dans un JAR compilé, la méthode getResourceAsStream peut renvoyer null, laissant les développeurs perplexes. Cet article approfondit le problème et propose une solution.

Les premières tentatives de chargement du fichier à l'aide de Class::getResourceAsStream et de divers arguments ont toutes abouti à l'impression de null. Ce comportement inattendu est dû au fait que le chargeur de classe système, utilisé par la méthode Class::getResourceAsStream(...), ne reconnaît pas les JAR et ne peut donc pas accéder aux ressources contenues dans le fichier JAR.

Pour résoudre ce problème, il est nécessaire d'utiliser le chargeur de classe approprié ayant accès aux ressources du JAR. En Java, chaque classe est chargée par un chargeur de classe, et le chargeur de classe qui a chargé la classe Lifepaths aura accès aux ressources du JAR. Par conséquent, la bonne façon de charger le fichier est d'utiliser directement la méthode Class::getResourceAsStream(), comme indiqué ci-dessous :

public static InputStream loadResource() {
    return Lifepaths.class.getResourceAsStream("/initialization/Lifepaths.txt");
}
Copier après la connexion

Notez que lors de l'appel de getResourceAsStream(name), le nom doit commencer par "/ ". Cela garantit que la ressource est chargée à partir de la racine du chemin de classe et est essentiel pour que le chargeur de classe localise correctement le fichier.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal