Je souhaite fabriquer avec BCEL le byte code d'une classe "A" qui
ressemble à ça :
public class A {
public Class method1() {
return Class.forName("B");
}
}
Un ClassLoader personnalisé fabrique les classes dynamiquement.
Pour utiliser "A", c'est facile :
myClassLoader.findClass("A");
Le problème c'est que "B" est également généré et "Class.forName"
utilise un ClassLoader système. Comment faire pour que mon ClassLoader
soit pris en compte par "Class.forName" ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frederic WOEHL
public static Class forName(String name, boolean initialize, ClassLoader loader)
L'appel à Class.forName("B") ; est équivalent à Class.forName("B", true, this.getClass().getClassLoader()) ;
donc pour toi: Class.forName("B", true, myClassLoader ) ;
FRED
J?r?me Pochat wrote:
Bonjour
Je souhaite fabriquer avec BCEL le byte code d'une classe "A" qui ressemble à ça :
public class A {
public Class method1() { return Class.forName("B"); } }
Un ClassLoader personnalisé fabrique les classes dynamiquement. Pour utiliser "A", c'est facile :
myClassLoader.findClass("A");
Le problème c'est que "B" est également généré et "Class.forName" utilise un ClassLoader système. Comment faire pour que mon ClassLoader soit pris en compte par "Class.forName" ?
Merci d'avance
public static Class forName(String name,
boolean initialize,
ClassLoader loader)
L'appel à
Class.forName("B") ;
est équivalent à
Class.forName("B", true, this.getClass().getClassLoader()) ;
donc pour toi:
Class.forName("B", true, myClassLoader ) ;
FRED
J?r?me Pochat wrote:
Bonjour
Je souhaite fabriquer avec BCEL le byte code d'une classe "A" qui
ressemble à ça :
public class A {
public Class method1() {
return Class.forName("B");
}
}
Un ClassLoader personnalisé fabrique les classes dynamiquement.
Pour utiliser "A", c'est facile :
myClassLoader.findClass("A");
Le problème c'est que "B" est également généré et "Class.forName"
utilise un ClassLoader système. Comment faire pour que mon ClassLoader
soit pris en compte par "Class.forName" ?
public static Class forName(String name, boolean initialize, ClassLoader loader)
L'appel à Class.forName("B") ; est équivalent à Class.forName("B", true, this.getClass().getClassLoader()) ;
donc pour toi: Class.forName("B", true, myClassLoader ) ;
FRED
J?r?me Pochat wrote:
Bonjour
Je souhaite fabriquer avec BCEL le byte code d'une classe "A" qui ressemble à ça :
public class A {
public Class method1() { return Class.forName("B"); } }
Un ClassLoader personnalisé fabrique les classes dynamiquement. Pour utiliser "A", c'est facile :
myClassLoader.findClass("A");
Le problème c'est que "B" est également généré et "Class.forName" utilise un ClassLoader système. Comment faire pour que mon ClassLoader soit pris en compte par "Class.forName" ?