如果一个Jar包在被JVM使用时被更新,会发生什么?

4

我知道,在典型情况下,一个类只会被加载一次。我也知道类是不可变的。因此,一旦类被加载,除非重新加载(通常不会发生),否则它不能被更改。

对于Jar文件是否也适用同样的规则呢?如果在JVM仍在运行并且先前已从Jar中加载了类时更新了Jar文件会发生什么?

1个回答

4

如果在该jar包中使用了一个类,则其定义将保持不变;如果新的类被加载到更新后的jar包中,那么新的类将被采用。


1
听起来你可能会得到一些原始类和一些更新的类的JVM,这取决于何时更新Jar和何时加载类。这对正在运行的应用程序有什么影响? - Jim Hurne
@Jim Hurne:是的,你可以。其影响是随机的MethodNotFound异常。 - WW.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接