gpt4 book ai didi

java - 在java中热交换jar文件

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:30 24 4
gpt4 key购买 nike

我有两个 jar 文件。一个.jar 包含启动进程的主要方法,其他两个.jar 仅包含类文件。

在 One.jar 中,我在其 list 类路径中引用了 two.jar。

One.jar 包含使用 Class.forName() 动态加载类的机制

我只想在一生中只部署一次 One.jar。不会对其进行任何更改。

变化只会发生在 two.jar 中

我想用更新的 two.jar 热交换 two.jar。我也看过其他关于热插拔的帖子,比如 OSGi、ANT 的热插拔,但对我没有任何帮助。

经过一些研究发现 JRebel 在这方面确实做得更好,但我真的不知道如何将它与这些 jar 集成?我坚持了将近 2 天。只需几步信息即可完成此操作。请有人帮助我...这对我来说真的很重要...谢谢

最佳答案

嘿,我终于找到了解决方案。我真的不知道我会想出这么简单的解决方案。我接受了@Thorbjørn Ravn Andersen 的想法。我所做的只是首先获取 jar 文件的时间戳,然后使用 URLClassLoader 加载 jar。如果 jar 文件的时间戳发生变化(即当我用更新的 jar 替换 jar 时),那么我将使用 close() 丢弃旧的 URLClassLoader 对象并再次使用 URLClassLoader 加载新的 jar。我每次唯一要检查的是 jar 的时间戳是否改变。希望这个答案也能帮助其他人。感谢大家的支持。

关于java - 在java中热交换jar文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913149/

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