Maison  >  Article  >  Java  >  Comment accéder de manière cohérente aux ressources intégrées dans un JAR ?

Comment accéder de manière cohérente aux ressources intégrées dans un JAR ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-06 08:26:02838parcourir

How to access embedded resources in a JAR consistently?

Chargement des ressources à partir d'un JAR

Lors de l'accès aux ressources intégrées dans une archive JAR, les développeurs rencontrent généralement un écart entre le chemin des ressources obtenu lors de l'IDE exécution et lors de l'exécution de l'application via JAR. Dans le contexte de l'EDI, les ressources sont accessibles directement à partir du système de fichiers, tandis que dans l'environnement JAR, le chemin est orné de manière choquante du préfixe de l'archive (par exemple, "jar:/root/app.jar!/").

Pour résoudre ce problème et maintenir un mécanisme d'accès aux ressources cohérent, tenez compte des conseils suivants :

Utilisez getResourceAsStream

Évitez la tentation de charger des ressources à l'aide de FileInputStream ou d'approches similaires. . Au lieu de cela, utilisez la méthode getResourceAsStream() pour récupérer une ressource en tant que flux d'entrée, à partir duquel les données peuvent être facilement lues.

Évitez l'accès direct au système de fichiers

Si votre le code repose sur l'accès aux ressources sous forme de fichiers uniques stockés dans le système de fichiers, évitez de regrouper ces ressources dans un fichier JAR. Envisagez une solution alternative, par exemple en les conservant sous forme de fichiers séparés.

Envisagez l'extraction de fichiers temporaires

En dernier recours, vous pouvez explorer une solution hacky impliquant les étapes suivantes :

  1. Vérifiez si la ressource se trouve dans un fichier séparé au sein du JAR.
  2. Si ce n'est pas le cas, extrayez la ressource dans un fichier temporaire.
  3. Utilisez le fichier extrait si nécessaire dans votre application.

Bien que cette approche puisse être fonctionnelle, sa nature aléatoire suggère qu'elle doit être utilisée avec prudence.

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