Charger une classe"urgent "

cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007 - 4 juin 2007 à 18:38
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007 - 10 juin 2007 à 18:51
salut tout le monde ,
je veut faire une modification sur une classe pendant l'execution et la compiler en suit de la recharger sur la jvm ( je dit bien pendant l'execution )  , j'ai utilise la "classloader " mais toujoure j'ai un problem si vous avez une édie ou bien un code source que m'aide donner le  et merci d'avance

17 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
4 juin 2007 à 19:53
Salut:

Quel type de problème as tu?
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
4 juin 2007 à 23:37
salut , c'est t'un problem de classloader  (la classe pres definie )
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 juin 2007 à 00:40
Salut:

Ceci est un bon cours pour introduire les ClassLoaders, dans lequel il développe un programme qui fait le même travail que l'utilitaire MakeFile d'UNIX, je pense que ça va t'aider (I.C.A.) vu qu'il y a au moins la notion de compiler le code source si c'est nécessaire de le faire.

Bonne chance ...
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 juin 2007 à 00:42
Salut:

Désolé, j'ai oublié d'indiquer le lien:

http://www.panix.com/~mito/articles/articles/classloader/j-classloader-ltr.pdf




C'est un bon tutorial, si je ne me trompe pas il est écrit par quelqu'un qui travaille chez IBM.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 juin 2007 à 00:45
Salut:

Autre chose à dire, il vaut mieux que tu valides une réponse que lorsque tu trouvera (I.C.A.) une solution à ton problème, sinon pour un sujet validé personne ne viendra pas pour jetter un coup d'oeil .
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
5 juin 2007 à 07:42
salut j'ai deja co documment et j'ai essaye de l'utilise l'exemple indique su ce document mais toujour j'ai le méme  probleme
outil: c'est le jbuilder9)
en tout les cas merci de votre aide
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 juin 2007 à 12:20
Salut:

Tu peux au moins nous indiquer le type de problème ou de message d'erreur?

Pour le cours que j'ai déja évoqué le plus important est de comprendre les différentes étapes pour créer un classe loader (sous-classe de ClassLoader) et de bien assimuler les rôles des méthodes les plus importantes.

En attendant Bonne chance ...
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
5 juin 2007 à 18:35
salut le probleme est que j'ai utilise  la classe apres le chargement le jbuilder m'affiche ces erreurs
java.lang.ClassFormatError: projetserveur/FipaRequestInitiateur (Bad magic number)
 "FipaRequestInitiateur" est le nom de la classe charger
at java.lang.ClassLoader.defineClass0(Native Method)



 at java.lang.ClassLoader.defineClass(ClassLoader.java:502)



 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)



 at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)



 at java.net.URLClassLoader.access$100(URLClassLoader.java:54)



 at java.net.URLClassLoader$1.run(URLClassLoader.java:193)



 at java.security.AccessController.doPrivileged(Native Method)



 at java.net.URLClassLoader.findClass(URLClassLoader.java:186)



 at java.lang.ClassLoader.loadClass(ClassLoader.java:299)



 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)



 at java.lang.ClassLoader.loadClass(ClassLoader.java:255)



 at java.lang.ClassLoader.findSystemClass(ClassLoader.java:666)

merci de votre aide  vous me donne un grand espoire   
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 juin 2007 à 21:03
Salut:

Veux tu charger une classe à partir du réseau?
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
5 juin 2007 à 21:49
salut nom c'est pas ce je veut faire des modification sur une classe qui deja existe dans le projet(l'application est en cours d'execution ) en suite de compiler cette classe et de la charger dans le jvm pour que les modification faite ont  pris en consediration dans notre application  
-mon problem est comment charger la classe dans le jvm
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
5 juin 2007 à 23:04
Salut:

D'après le type de l'erreur déclenché



java.lang.ClassFormatError

il parait que les modifications que tu as fait sur la classe concerné ont modifié le format général d'un fichier .class que tu dois le respecter.

Les ClassLoader chargent des classes en les compilant si c'est nécessaires mais si je ne me trompe pas, ils ne permettent pas de modifier le schéma/format d'un fichier .class.




 
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
6 juin 2007 à 18:37
salut,
 est ce que vous avez une autre solution pour que les modification sont pris en compt dans l'application
merci d'avance
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
6 juin 2007 à 18:51
Salut:

Veux tu modifier un fichier source ou un fichier .class?

Je ne sais pas quoi te dire. Pour moi, modifier un .class me paraît impossible, ça nécessite une bonne connaissance de la structure de ce type de fichier et voir si c'est possible de le faire.

Peux me dire pour quoi fais tu ça? Peut être qu'on trouve d'autres solutions/propositions plus simplistes.
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
6 juin 2007 à 19:13
salut
 je suis en train de realiser un projet de fin d'etude "mise en oeuvre d'un serveur d'interaction en utilisant la methode de delegation " dans le dommain de systeme multi agents
-je besois de modifier des protocoles en cours d'execution du systeme 
et que chaque prtocole est representer par un fichier ""nomdeprotocole.java"" 
donc quand  je veut faire des modifications je doit cree un nouveu fichier .java qui a  le meme nom avec l'encient protocole ""nomprotocole.java""
en suit de le compiler et de le charger dans le jvm  por que les modification sont pris en compt
merci
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
6 juin 2007 à 20:11
Salut:

J'ai fait une petite recherche, et j'ai trouvé quelques articles qui traitent le rechargement dynamique des classes modifiées sans avoir besoin de redémarrer l'application.

http://www.exampledepot.com/egs/java.lang/ReloadClass.html

http://www.javaworld.com/javaworld/javatips/jw-javatip52.html
Un petit extrait de cette URL:
"For those of you who need to deal with loading and unloading classes on
the fly, these new rules makes life a little clearer. Just load classes
that you wish to later reload in your own classloader. When you want to
reload the classes, nuke the classloader and then load the class
through a newly created classloader.

"

Je pense qu'il y a beaucoup d'article de ce genre, fais une recherche comportant ces mots clés: Java reload class

Es tu de l'ENSI?

Bonne chance .
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
6 juin 2007 à 20:42
salut merci j'ai essai de lire et d'utilise ces article et merci en coure une fois
0
cs_soumia_info Messages postés 39 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 août 2007
10 juin 2007 à 18:51
salut ,
nourmalement la classe es recharger  et maintenant  je veut instancie le constructeur de la classe recharger  mais je connu pas les paremetres  de ce constructeur comment faire ?
merci d'avance
0