Java Language Instancier et utiliser un chargeur de classe


Exemple

Cet exemple de base montre comment une application peut instancier un chargeur de classe et l'utiliser pour charger dynamiquement une classe.

URL[] urls = new URL[] {new URL("file:/home/me/extras.jar")};
Classloader loader = new URLClassLoader(urls);
Class<?> myObjectClass = loader.findClass("com.example.MyObject");

Le classloader créé dans cet exemple aura le classloader par défaut en tant que parent, et essaiera d'abord de trouver une classe dans le classloader parent avant de chercher dans "extra.jar". Si la classe demandée a déjà été chargée, l'appel findClass renverra la référence à la classe précédemment chargée.

L'appel findClass peut échouer de différentes manières. Les plus courants sont:

  • Si la classe nommée ne peut pas être trouvée, l'appel avec jeter ClassNotFoundException .
  • Si la classe nommée dépend d'une autre classe introuvable, l'appel lancera NoClassDefFoundError .