2 votes

Comment Eclipse gère-t-il les différentes classes Java en cours d'exécution ?

Si j'ai un fichier Java test.java, que je l'exécute à l'aide d'Eclipse et qu'il prend beaucoup de temps à traiter, comment se fait-il que je puisse modifier le test.java et exécuter une autre instance de celui-ci en même temps ? Il devrait y avoir un seul fichier test.class, mais Eclipse semble mettre en cache l'ancien pendant l'exécution, non ?

5voto

MrSmith42 Points 5159

Pendant l'exécution du programme, le fichier de classe a déjà été chargé par le chargeur de classe dans la mémoire. Par conséquent, la VM n'a plus besoin du fichier .class. Il n'y a donc aucun problème si le fichier .class change dans le système de fichiers.

1voto

Perception Points 42290

Si j'ai un fichier java test.java, et que je l'exécute en utilisant eclipse et qu'il et qu'il prend beaucoup de temps à traiter, comment se fait-il que je puisse modifier le fichier test.java et exécuter une autre instance en même temps ? et exécuter une autre instance de celui-ci en même temps ? Il devrait y avoir un seul test.class, mais eclipse semble mettre en cache l'ancien pendant l'exécution, n'est-ce pas ?

Ce n'est pas généralement true, sauf si vous avez désactivé les constructions automatiques de projet et/ou le déploiement de code à chaud. Les modifications compatibles apportées aux fichiers sources dans Eclipse seront propagées à toutes les sessions de débogage qui ont chargé la classe équivalente, sauf si la signature de la classe elle-même a été modifiée.

Mais oui, chaque session de débogage dans Eclipse est effectivement son propre processus, avec son propre classloader.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X