Maison >Java >javaDidacticiel >Comment puis-je obtenir un chemin de fichier vers une ressource dans un fichier Java JAR ?

Comment puis-je obtenir un chemin de fichier vers une ressource dans un fichier Java JAR ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-09 16:58:14461parcourir

How Can I Get a File Path to a Resource Inside a Java JAR File?

Obtention d'un chemin d'accès aux ressources dans un fichier JAR Java

Question :

Récupération d'un Le chemin d'accès à une ressource (par exemple, un fichier de configuration) dans un fichier JAR s'est révélé infructueux. Les tentatives d'utilisation du chargeur de classe avec getResourceAsStream() et getFile() génèrent des exceptions ou un chemin référençant le fichier JAR lui-même. Est-il possible d'obtenir un chemin de fichier valide ?

Réponse :

Récupérer un chemin de fichier vers une ressource dans un fichier JAR est intrinsèquement difficile en raison des limitations potentielles du chargeur de classe. Les fichiers JAR contiennent souvent des ressources qui ne sont pas physiquement présentes en tant que fichiers individuels sur le système de fichiers.

L'accès au contenu d'une ressource est possible via classLoader.getResourceAsStream(), qui renvoie un flux d'entrée pour lire le contenu de la ressource. Cependant, tenter de le convertir en fichier avec getFile() peut entraîner une exception car la ressource peut ne pas avoir de chemin de fichier correspondant.

Si un descripteur de fichier est absolument essentiel, il est recommandé de créer un descripteur de fichier temporaire. fichier, copiez-y le contenu de la ressource, puis utilisez le chemin du fichier temporaire. Cette approche alternative garantit la disponibilité d'un chemin de fichier valide.

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!

Déclaration:
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