gpt4 book ai didi

java - 在外部 Java 库之后清理

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:46 26 4
gpt4 key购买 nike

我在我的应用程序中使用了一些外部库,即 jar 库,不幸的是,它无法正确清理自身,即我第二次从该库创建对象时,它没有按预期工作。我怀疑这是因为库创建了一些线程,这些线程一直在运行,但我不确定。

有什么方法可以强制彻底清除外部库造成的困惑?

最佳答案

可能有与线程无关的原因。例如,静态类初始值设定项仅在第一次加载类时运行一次。所以这样的事情可能是原因:

public class StupidSingleton {
private static StupidSingleton instance;

public StupidSingleton() {
if (instance == null) {
instance = this;
} else {
instance.foo(); // the implementation is irrelevant in this context
}
}
}

无论是什么,都可以使用三种基本解决方案:

  1. 不要使用 jar 。寻找更新和替代方案。
  2. 使用自定义类加载器控制类加载。这是一条艰难的道路。
  3. 修复它。即使没有源代码,您也可以使用调试器反编译这些类。如果找到原因但无法获得官方修复,您可能仍会从反编译的类中创建 proprietary_fixed.jar。

关于java - 在外部 Java 库之后清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365774/

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