Exemple.java
// Exemple.java
/*
Repertoire : ClassLoader
Fichier : Exemple.java
Date : 21/11/2008
Auteur : J.Laforgue
---------------------------------------------------------
Role :
Exemple de demonstration du chargement dynamique de classe Java.
Les packages predefinies utilises :
- java.lang
- java.lang.reflect
Les classes principales mise en oeuvre sont :
- ClassLoader (java.lang) ()
- Class (java.lang)
- Constructor (java.lang.reflect)
--------------------------------------------------------------
Architecture :
Exemple.java : programme principal
pkgexemple/ : package utilise par Exemple.java
Action.java : classe abstraite utilise par le programme
ChargeurClasses.java : classe permettant de charger les classes
dynamiquement
packages/pkg1/ : package contenant une classe de demonstration
Action1.java
packages/pkg2/ : package contenant une classe de demonstration
Action2.java
rep/
ActionRep.java : repertoire contenant une classe java
n'appartenant pas a un package
---------------------------------------------------------------
Compilation:
compil.bat
---------------------------------------------------------------
Execution:
run.bat executions du programme :
java Exemple 1
java Exemple 2
java -classpath ".;packages" Exemple 3
---------------------------------------------------------------
Commentaires :
Cet exemple sous la forme de 3 executions permet de mettre en
evidence les concepts mise en oeuvre pour le chargement dynamique
de classe.
Charger une classe dynamiquement consiste a vouloir utiliser
une classe Java alors que l'on ne fait pas l'import des packages
contenant ces classes, sachant que l'on a que les elements
suivants :
- le nom de la classe
- le lieu physique du fichier .class
- savoir si cette classe appartient a un package ou est tout
simplement dans un repertoire
La classe ClassLoader predefinie a la methode
public Class loadClass(String nom-de-la-classe)
Page 1