[Java] Redéfinir une classe dynamiquement

Fermé
bigbybob - 21 déc. 2011 à 12:14
Bonjour à tous,

Alors voila, je vous explique :

J'ai fait un serveur d'action entièrement dynamique, en gros, on compile nos actions à exécutées dans un environnement différent du serveur. Et ensuite on ajoute ces actions sous forme de Jar au serveur.
Le serveur va donc récupérer cette action, rechercher la classe voulue dans le Jar, la définir et la loader.

Pour cela j'ai redéfini le ClassLoader de manière à pouvoir faire des
this.defineClass(nom de la classe, byte[], 0, byte[].length)


De cette manière je peux donc charger mes actions et les utiliser sans avoir à re-compiler ou redémarrer le serveur.

Bon jusque la tout fonctionne, c'est testé et approuvé ^^

Mon problème est le suivant :

Je veux pouvoir modifier une action existante. Donc il faut bien sur recompiler mon action et la redonner au serveur. Le problème c'est que mon action existe déjà, il me dit donc que la définition (defineClass) est impossible. Et un simple load ne sert à rien puisque le tableau d'octet associé correspond à l'ancienne version.

Savez vous s'il existe un moyen de changer le tableau d'octet associé à une classe qui a été chargée et définie dynamiquement?

Merci d'avance


A voir également: