Pb avec le ClassLoader [Résolu] [Java] - Java - Programmation
Marsh Posté le 05-12-2002 à 16:41:19
mais euh ... tu veux en fait spécifier la classe à utiliser au runtime?
C'est pas comme ca qu'on fait hein ...
Marsh Posté le 05-12-2002 à 17:36:46
ben, en fait, j'ai déja des applis qui tournent et qui générent du XML a partir de la base.
Les applis utilisent toutes les classes CXMLGen, CEnvironment et CStringInterpreter qui sont communes.
Les applis possédent 2 classes (qui sont abstract) nommées CData et CSpecifique (qui dérivent de CDataBuilder et CSpecifiqueBuilder), ces classes sont utilisées dans CXMLGen.
Une fois cela fait, j'ai crée une interface de dév'...
et maintenant, je fais le module qui execute les scripts directement depuis l'interface, il suffit de selectionner le répertoire qui contient les 2 classes cdata et cspecifique.
Le classloader charge ces 2 classes.
L'interface appelle CXMLGen qui a besoin a la construction d'un objet CData. Ca, c'est ce que je voudrais pouvoir faire.
Marsh Posté le 06-12-2002 à 08:50:51
DarkLord a écrit : mais euh ... tu veux en fait spécifier la classe à utiliser au runtime? |
comment qu'on fait alors???
Marsh Posté le 06-12-2002 à 09:10:25
pourquoi créer ton propre ClassLoader ????
les .class existe déjà quand tu lance l'appli, non ?
Marsh Posté le 06-12-2002 à 09:37:09
oui mais elles sont spécifiques a une appli (meme en-tete de methode, mais pas meme attribut et ni le meme corps)
il existe 2 versions (pour l'instant) du groupe CData/CSpecifique
ce sont ce groupe de class que je loade et que je voudrais pouvoir utiliser sans changer le classpath a chaque lancement de l'interface (user friendly pas developper friendly ).
Marsh Posté le 06-12-2002 à 11:02:45
djok_fb a écrit : oui mais elles sont spécifiques a une appli (meme en-tete de methode, mais pas meme attribut et ni le meme corps) |
mais tu fais de la réflexion ... Pas besoin de faire du classloading enfin
Marsh Posté le 06-12-2002 à 11:21:05
le truc, c'est que l'interface appelle une classe qui elle fait un import de CData (a la base, je devais pas en faire une utilisation dans une interface de test)
Marsh Posté le 11-02-2003 à 16:56:48
ca y est j'ai trouvé ma solution, il suffisait d'aller sur le site de sun ( http://java.sun.com/docs/books/tut [...] Class.html ) pour que je trouve mon bonheur et des explications...
Marsh Posté le 05-12-2002 à 16:05:13
bonjour,
voila, j'ai fait des classes qui convertissent des données en provenances de bases de données vers XML accompagné d'un langage script de mon cru...
ces classes font appel a des classes qui sont specifiques a chaque application (derivant de classe abstract)...
quand j'utilise mon loader, ca charge nickel et j'utilise sans probleme les methodes de la classe abstraite.
Voila, la gueule de la classe abstraite:
La classe créée a partir de cette classe abstraite s'appelle CData et se trouve dans un répertoire a part...
Le code de mon classloader est le suivant (simple mais efficace, j'ai pas besoin de plus pour l'instant mais est-il complet???).
Le code d'appel (classe COpenSimu) est le suivant:
et après ca appelle une classe commune qui elle fait appel a CData.
et la ca merde a la compil (a priori c'est normal), il me dit ne trouve pas le fichier CData.class...
d'ou vient le probleme? est-ce que ce que je veux faire est possible?
ps: ce que je veux faire en gros, c'est avoir quelques classes communes et 2 classes variables (CData et CSpecifique) chargées dynamiquement
Message édité par djok_fb le 11-02-2003 à 16:57:35