【问题标题】:Why Java Classloader does not release jars为什么 Java Classloader 不发布 jars
【发布时间】:2020-03-10 06:19:50
【问题描述】:

我需要从 jar 中加载类,为此我正在使用:

cls = Class.forName(className, false, classLoader);

最后,我想删除这些jar,但似乎这是不可能的,因为ClassLoader没有释放这些jar。所以我用了:

classLoader.release();

System.gc();

但不幸的是这并不能解决问题...

【问题讨论】:

  • 发布 JAR。还没完成。
  • 我怎样才能发布 JARs
  • 你不能。你不应该。
  • @khouloud 你的用例是什么?为什么要尝试从内存中释放 JAR?
  • @entpnerd 我正在使用从 ClassLoader 扩展的自定义类加载器。我正在尝试释放 jar,所以我可以删除这些 jar。

标签: java jar classloader


【解决方案1】:

According to the JLS,类(以及 JAR 文件)无法显式卸载。

也许可以通过here 中描述的一些技巧来实现类似的效果,但这取决于 JVM 的实际实现,因此您不应该在此基础上进行构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多