gpt4 book ai didi

java - 替换类路径中的 jar 后出现 ClassNotFoundException

转载 作者:行者123 更新时间:2023-11-29 07:51:39 25 4
gpt4 key购买 nike

我有一个 java 进程运行,类路径中有两个 jar 文件
- A.jar
- B.jar
当进程运行时,我用另一个 B.jar 替换了 B.jar,我用一些文件更新了它。现在在我的过程中,我看到 B.jar 中的类有一些 ClassNotFoundException 。我不明白这里发生了什么。我以为 jar 会在 java 进程启动时加载。如果是这样,为什么会这样?有人可以帮我解决这个问题吗??我知道如果我重新启动该过程,一切都会好起来的。但我很想知道这背后的原因。

最佳答案

JAR 文件中的类在 first used 时被加载,而不是在 JVM 启动时。通过在应用程序运行时替换 B.jar,如果您删除了其他人引用的类,您将得到一个 ClassNotFoundException

如果您有一段时间未使用的类已被垃圾回收,这在 Java 7 中也会发生。 JVM 将尝试重新加载它,并发现它不再位于类路径中。如果您使用 -XX:+CMSClassUnloadingEnabled 启动选项,这也可能发生在早期版本的 Java 中。

关于java - 替换类路径中的 jar 后出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com