代码之家  ›  专栏  ›  技术社区  ›  cweston Given

在运行时交换正在运行的jar

  •  5
  • cweston Given  · 技术社区  · 15 年前

    我正在构建一个更新系统,在该系统中,我需要能够在运行时替换正在运行的应用程序jar的引用jar。但是,当我尝试在jar上执行文件实用程序函数(如“setLastModified”)时,在Windows上遇到了文件锁定问题。

    在谷歌搜索之后,我发现了这个片段。。。

    标准类加载器 从未 关闭一个罐子 文件一旦被打开。它也 仅从jar文件加载资源 根据需要。所以在任何时候, jar文件中可能有类 显然,如果删除jar文件 尝试在中查找资源 丢失的文件,你会得到一个 至少是例外。

    谢谢。

    3 回复  |  直到 9 年前
        1
  •  6
  •   Colin Hebert    15 年前

    这取决于你想做什么。

        2
  •  2
  •   stacker    15 年前
        3
  •  0
  •   Riaan Cornelius    15 年前

    我不知道有什么好办法来处理这件事。创建自定义类加载器可能是一种选择,尽管我不喜欢这个想法。。