Je viens de voir une vidéo montrant comment Notch (de la renommée de Minecraft) débogue et modifie Minecraft pendant son fonctionnement. Il interrompt le jeu, modifie quelque chose dans le code, puis interrompt le jeu où le changement prend effet immédiatement sans avoir à redémarrer le programme.
Comment cela marche-t-il? Quel type de technique est utilisé pour y parvenir?
Réponses:
Java peut effectuer des échanges à chaud dès la sortie de la boîte. Si vous utilisez un IDE comme Eclipse, cela fonctionnera pour changer les corps de méthode. Si vous souhaitez appliquer d'autres modifications de code, vous pouvez utiliser un outil. JRebel est un produit qui prend en charge plus de cas.
Je ne veux pas faire de marketing pour ce produit, mais je ne connais personnellement aucune autre alternative. Sur le site Web de JRebel, il y a une belle comparaison de fonctionnalités .
J'espère que cela pourra aider.
la source
Cela s'appelle remplacer le code à chaud et permet à un IDE de changer le code en cours d'exécution via l'interface de débogage. Il est pris en charge par la JVM Sun depuis Java 1.4.1
Cependant, à moins que vous n'utilisiez l'extension (commerciale) JRebel JVM, elle est limitée aux modifications à l'intérieur des corps de méthode. Si vous ajoutez / supprimez des méthodes ou des classes ou modifiez des signatures, vous devez redémarrer la JVM.
la source