Dans mon projet (lors de l'exécution): Le chargeur de classe d'application est chargé avec un ensemble de classes. Et j'ai un chargeur de classe d'utilisateur, chargé avec un ensemble de classes.Comment ajouter/charger une classe au chargeur de classe d'extension au moment de l'exécution?
Maintenant, il existe une classe dans le chargeur de classe d'application qui tente de charger une classe qui n'existe pas dans le chargeur de classe d'application, mais qui existe dans le chargeur de classes d'utilisateurs.
Par exemple: une classe dans le chargeur de classe d'application ayant un code comme
this.getClass().getClassLoader().loadClass("user class").
Note: Je n'ai pas accès à la classe (qui est dans le chargeur de classe d'application) et je peux cant ajouter la classe à charger au chargeur de classe d'application.
Comment charger une telle classe?
Ce scénario se passe dans la classe DriverManager:
Je DriverManager dans la catégorie chargeur d'application et classe pilote dans chargeur de classe utilisateur. Et DriverManager essaie de charger la classe de pilote dans Chargeur de classe d'application et il ne parvient pas à charger la classe. Donc je veux ajouter la classe de pilote à l'application ou le chargeur de classe d'extension à l'exécution. Mais comment le faire?
Quelle est la hiérarchie entre Application Classloader et User Classloader? L'un ou l'autre est-il un chargeur de classe parent de l'autre, ou est-il totalement indépendant (ayant un parent commun quelque part)? Je suppose que AppCL sera le parent de UserCL. – gaborsch
oui, classloader d'application est le parent du chargeur de classe User. –