Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
948 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Creation dynamique de Class a partir d'un fichier .class

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Creation dynamique de Class a partir d'un fichier .class

n°1066390
cyrax_bfp
Posté le 29-04-2005 à 23:45:54  profilanswer
 

Bonjour,
 
J'ai un programme Java qui me permet de scanner un repertoire et ses sous repertoires recursivement et de recuperer tous les fichiers .class
 
Certains de ces fichiers appartiennent a des paquetages et d'autres non.
Je voudrais savoir comment faire pour créer un objet a partir du nom de ce fichier xxx.class
 
Je suppose que je dois recuperer d'abord une class et de creer une nouvelle instance de cette classe (un peu comme avec la methode class.forName(String s) )
Mais je vois vraiment pas comment faire.
Si vous aviez une idée , ca me sauverait :p
Merci d'avance

mood
Publicité
Posté le 29-04-2005 à 23:45:54  profilanswer
 

n°1066480
the real m​oins moins
Posté le 30-04-2005 à 01:36:03  profilanswer
 

*rien compris*


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1066486
cyrax_bfp
Posté le 30-04-2005 à 02:14:45  profilanswer
 

j'ai une classe avec un main dedans.
Dans ce main , je recupere tous les fichiers d'un repertoire
Je filtre ces fichiers pour n'avoir que les fichiers compilé java (*.class)
Je voudrais créer des instances de ces fichiers .class

n°1066488
the real m​oins moins
Posté le 30-04-2005 à 02:17:42  profilanswer
 

oui, et? c'est quoi ton problème ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1066489
cyrax_bfp
Posté le 30-04-2005 à 02:40:42  profilanswer
 

bah je sais pas comment faire pour creer ses fameuses instances...
Quel objet je dois utiliser pour faire ca...

n°1066493
the real m​oins moins
Posté le 30-04-2005 à 03:10:15  profilanswer
 

eh bien, dans ton premier post, tu parles de Class.forName(), tu as lu la javadoc?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1066535
cyrax_bfp
Posté le 30-04-2005 à 10:11:55  profilanswer
 

Voila je vais expliquer en details :
J'ai un projet admettons dans mon home /home/moi/projet/
Dans /home/moi/projet/src/ j'ai mes sources
Dans /home/moi/projet/classes/ j'ai mes fichiers classes (*.class)
Je fais un scan de fichiers a partir de mon /home/moi/projet/
en recuperant tous les fichiers *.class (donc ceux qui se trouvent dans mon /home/moi/projet/classes
 
Ces fichiers correspondent donc a des fichiers bytecode java (des fichiers semi compiles prets a etre executé par la jvm)
 
Maintenant je voudrais savoir comment faire pour créer l'objets correspondant a chaque fichier *.class
Le Class.forName(String s) me permet de construire un objet a partir d'une chaine de caracteres , il faut donc lui passer paquetage1.souspaquetage.MonObjet et la il cré la Class associé a mon objet. Or ici ce n'est pas le cas, car a priori je ne connais qu'un path d'un fichier .class (ex : "classes/MonObjet.class" ) et donc je ne connais pas a priori la string qui correspondra a nom du paquetage de l'objet... Je ne peux donc pas y appliquer la methode Class.forName(). Je pourrais utiliser Class.forName() si tous les objets n'etait pas inscrit dans des paquetages et recuperant juste "MonObjet" et en le passant a Class.forName().
 
En gros ,c'est pour un systeme de plug ins, on pourra i rajouter des fichiers *.class n'importe ou dans la racine de mon projet , ces fichiers *.class pourront appartenir ou non a des paquetages. et mon programme devra charger l'objet correspondant dynamiquement... Donc le Class.forName() ne peut pas s'appliquer dans tous les cas :'(
Je voudrais juste savoir comment faire? :p merci  

n°1066596
benou
Posté le 30-04-2005 à 11:20:05  profilanswer
 

en^même temps, si tes classes sont dans des packages, il serait logique qu'elles soient dans des sous-repertoire correspndant au package :  
truc.toto.Machin => classes/truc/toto/Machin.class
 
si c'est pas le cas, le chargement via classpath ne fonctionnera pas. Il doit y a avoir moyen de charger les classes manuellement en utilisant defineClass() de la classe ClassLoader. Moi je ne l'ai jamais fait...
 
http://java.sun.com/j2se/1.4.2/doc [...] oader.html
 
je serais toi, j'imposerais la fourniture des plug-ins sous la forme de Jar (=> qui respecteraient l'architecture de repertoire)
 
y avait eu un sujet où on avait discuté de ca avec veryfree.
J'avais fait un bout de code...
Tu pourras peut être t'en inspirer :  
http://forum.hardware.fr/forum2.ph [...] 44#t522503


Message édité par benou le 30-04-2005 à 11:23:06

---------------
ma vie, mon oeuvre - HomePlayer
n°1066606
cyrax_bfp
Posté le 30-04-2005 à 11:34:36  profilanswer
 

Merci Benou, Je regarde le code, j'essaye de l'adapter et je donne des news si ca marche :p

n°1066609
benou
Posté le 30-04-2005 à 11:37:23  profilanswer
 

cyrax_bfp a écrit :

Merci Benou, Je regarde le code, j'essaye de l'adapter et je donne des news si ca marche :p


ok.
je me souviens plus si je l'avais testé => je ne garantis rien ;)


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 30-04-2005 à 11:37:23  profilanswer
 

n°1066738
the real m​oins moins
Posté le 30-04-2005 à 13:09:42  profilanswer
 

ben si c'est pour un systeme de plugins, en plus, tu peux pas instancier toutes les classes au hasard comme ça; il te faut au minimum un descripteur et/ou une interface à implementer; et y'a qques projets qui font ça pour toi


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2177226
fleure2008
Posté le 23-02-2013 à 20:28:08  profilanswer
 

the real moins moins a écrit :

ben si c'est pour un systeme de plugins, en plus, tu peux pas instancier toutes les classes au hasard comme ça; il te faut au minimum un descripteur et/ou une interface à implementer; et y'a qques projets qui font ça pour toi


 
Bonsoir, j'ai un probléme lors de l'instanciation d'une class avec un classloader. le nouveau classloader arrive à trouver la class mais il n'arrive pas à l'instacier.  
Merci pour votre aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Creation dynamique de Class a partir d'un fichier .class

 

Sujets relatifs
Utiliser le contenu d'un fichier texte sans composant memoouverture d'un fichier
Recherche une class en VB.NETEcrire un fichier dans un char *
[Résolu] Session, mysql, class, PEARexécuter un fichier java sans jbuilder
pb Upload fichier tout bête ! [Demande] Envoie de fichier
Création de pages html simples pour lecture sur téléphone mobile...affichage dynamique de champs dans un formulaire
Plus de sujets relatifs à : Creation dynamique de Class a partir d'un fichier .class


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR