Maison > Java > javaDidacticiel > Comment puis-je accéder aux chemins de ressources dans un fichier Java JAR ?

Comment puis-je accéder aux chemins de ressources dans un fichier Java JAR ?

Barbara Streisand
Libérer: 2024-12-18 00:07:11
original
236 Les gens l'ont consulté

How Can I Access Resource Paths Inside a Java JAR File?

Récupération des chemins de ressources dans les fichiers JAR Java

En Java, l'accès aux ressources regroupées dans les fichiers JAR peut être difficile. Bien que le contenu des ressources en streaming soit simple, l'obtention d'un chemin de fichier accessible peut s'avérer difficile.

Une approche tente de créer un objet File à l'aide de la méthode getResource :

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());
Copier après la connexion

Cependant, cela échoue souvent avec une FileNotFoundException, car la ressource peut ne pas avoir de fichier correspondant sur le système de fichiers.

Comprendre la ressource Concept

Les fichiers JAR regroupent des ressources dans une archive, qui peuvent ne pas être directement accessibles en tant que fichiers physiques. Le chargeur de classe gère le chargement des ressources et peut fournir un accès via des flux.

Alternative : diffuser le contenu des ressources

Pour accéder au contenu des ressources sans chemin de fichier, utilisez :

ClassLoader classLoader = getClass().getClassLoader();
PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
Copier après la connexion

Option Fichier Temporaire

Si un objet Fichier est indispensable, pensez copier le flux dans un fichier temporaire :

InputStream resourceStream = classLoader.getResourceAsStream("config/netclient.p");
File tempFile = File.createTempFile("resource", ".tmp");

try (OutputStream outputStream = new FileOutputStream(tempFile)) {
    resourceStream.transferTo(outputStream);
}
Copier après la connexion

Une fois copié, vous pouvez manipuler le fichier temporaire selon vos besoins.

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