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 :
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!