Résolution de la sortie nulle de getResourceAsStream
Lorsque vous tentez de récupérer un fichier texte à partir d'un JAR empaqueté à l'aide de Class::getResourceAsStream renvoie null, cela indique problèmes avec le mécanisme de chargement des ressources. La solution suivante résout ce problème :
-
Chargement de ressources modifié : au lieu d'utiliser Lifepaths.class.getClass().getResourceAsStream(...), qui appelle le chargeur de classe système (qui manque souvent de visibilité sur les ressources packagées), utilisez directement Lifepaths.class.getResourceAsStream(...) . Cela garantit que les ressources sont chargées par le chargeur de classe qui a chargé Lifepaths, lui permettant d'accéder aux ressources packagées.
-
Leading Slash : lors de la spécification du chemin de la ressource dans getResourceAsStream(name), il est Il est essentiel de le préfixer d'une barre oblique (/). Cela n'est pas toujours nécessaire mais a été observé pour résoudre des problèmes potentiels.
En implémentant ces modifications, le code fourni devrait charger et imprimer avec succès le contenu du fichier texte à partir du package JAR.
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!