Charger une ressource contenue dans un fichier Jar
En Java, le chargement de ressources est crucial pour accéder à des fichiers statiques tels que des images, des clips audio et fichiers de configuration. Lorsque les ressources sont stockées dans un fichier JAR (Java Archive), y accéder peut être difficile.
Une approche courante pour charger des ressources consiste à utiliser getResource. Cependant, comme décrit dans la question, cette méthode renvoie des chemins différents selon que l'application s'exécute à partir d'un IDE ou d'un fichier JAR.
Pour contourner ce problème, il est conseillé d'utiliser plutôt getResourceAsStream. Cette méthode renvoie un InputStream qui permet un accès direct au contenu de la ressource. Voici un exemple :
InputStream inputStream = this.getClass().getResourceAsStream("/repository");
Avec InputStream, vous pouvez exploiter des méthodes telles que read et readAllBytes pour récupérer le contenu de la ressource.
Vous pouvez également définir directement les propriétés du système à l'aide du contenu de la ressource, comme tel :
System.setProperty("javax.net.ssl.trustStore", this.getClass().getResource("/truststore").toString());
Notez que cette solution suppose que les ressources ne sont pas physiquement situées dans des fichiers séparés sur le système de fichiers. Si tel est le cas, vous devrez peut-être gérer l'extraction et le stockage des ressources du fichier JAR dans le cadre du processus d'initialisation de votre application.
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!