Versions multiples de la même bibliothèque Jar : gestion du chargeur de classe
La gestion de plusieurs versions de la même bibliothèque (par exemple, httpclient) peut poser des défis en Java en raison du chargement de classe. Cela est particulièrement vrai lorsque différents frameworks au sein d'un projet dépendent de versions majeures spécifiques de cette bibliothèque.
Comment le chargeur de classe gère-t-il cela ?
Le chargeur de classe Java tente de résoudre classes en fonction de leur nom binaire. Si plusieurs classes avec le même nom binaire sont présentes dans différents JAR chargés, les règles suivantes s'appliquent :
Isolement des chargeurs de classe
Les chargeurs de classe maintiennent l'isolement par défaut. Cela signifie que les classes chargées par un chargeur de classe ne peuvent pas accéder directement aux classes chargées par un autre. Cependant, si une classe est présente dans plusieurs JAR, l'isolement est rompu et une erreur de « classe en double » peut se produire.
Éviter les conflits de chargeur de classe
Pour éviter les conflits de chargeur de classe , il est recommandé de :
Incorporer des bocaux en tant qu'unité unique
Il n'existe aucun moyen inhérent à Java de combiner plusieurs JAR en une seule "unité" à des fins de chargement de classe. Cependant, certaines techniques peuvent être utilisées, telles que :
En fin de compte, le choix de la stratégie dépend des besoins spécifiques du projet et des ressources disponibles.
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!