OVH Cloud OVH Cloud

ClassLoader

1 réponse
Avatar
Pif
Bonjour, quand on fait un loadClass, il charge la classe dans le
répertoire courant. Comment spécifier autre part ?

Est il d'une part possible de spécifier une localisation "hors du
classpath" ?
D'autre part, comment décrit-on la racine, avec un
"java.monpackage.maclasse", "montpackage.maclasse" ou autre ?

Merci !

NB : quelqu'un connaitrait un bon tutoriel "très complet" sur le
chargement dynamique de classe ?

A +

1 réponse

Avatar
Jacques Desmazieres
En fait ton classloader cherche la classe dans le classpath, et pas dans le
répertoire courant.

Pour accéder à une classe qui ne soit pas dans le classpath, il faut
utiliser le URLClassLoader, auquel tu passe un tableau d'URL contenant le
chemin des de recherche des classes (équivalent à un classpath). Dans ces
URL tu peux spécifier des répertoires et/ou des archives (jar).

Mais attention au problématiques de cast avec les classes ainsi chargées !

Jacques Desmazières

"Pif" a écrit dans le message de news:
d0hq8k$brq$
Bonjour, quand on fait un loadClass, il charge la classe dans le
répertoire courant. Comment spécifier autre part ?

Est il d'une part possible de spécifier une localisation "hors du
classpath" ?
D'autre part, comment décrit-on la racine, avec un
"java.monpackage.maclasse", "montpackage.maclasse" ou autre ?

Merci !

NB : quelqu'un connaitrait un bon tutoriel "très complet" sur le
chargement dynamique de classe ?

A +