2010-09-30 7 views
4

Je sais que, dans des conditions typiques, une classe n'est chargée qu'une seule fois. Je sais aussi que les cours sont immuables. Ainsi, une fois que la classe est chargée, elle ne peut pas être modifiée à moins qu'elle ne soit rechargée (ce qui n'arrive généralement pas).Que se passe-t-il si un JAR est mis à jour alors qu'il est encore utilisé par une JVM?

Est-ce que la même chose est vraie pour Jars? Que se passe-t-il si un Jar est mis à jour alors qu'une JVM est toujours en cours d'exécution et qu'elle a déjà chargé des classes à partir du Jar?

Répondre

4

Rien, si une classe dans ce fichier est utilisée, la même définition reste, si une nouvelle classe est chargée dans le fichier mis à jour, elle sera prise.

+1

Il semble que vous pourriez vous retrouver avec JVM avec des classes originales et des classes mises à jour, selon le moment où le Jar est mis à jour et quand les classes sont chargées. Quelles sont les implications que cela pourrait avoir sur une application en cours d'exécution? –

+0

@Jim Hurne: Oui, vous pouvez. Les implications sont des exceptions aléatoires de MethodNotFound –