我有两个 jar 文件。
其中一个.jar 包含启动进程的 main 方法,其他两个.jar 仅包含类文件。
在 One.jar 中,我在其清单类路径中引用了 Two.jar。
One.jar 包含使用 Class.forName() 动态加载类的机制
我想一生中只部署一次 One.jar。不会对其进行任何更改。
更改仅发生在 Two.jar 中
我想用更新的two.jar 热交换two.jar。我也看过其他关于热交换的帖子,比如 OSGi、ANT 的热交换,但没有任何帮助我。
经过一番研究后发现 JRebel 确实做得更好,但我真的不知道如何将它与这些 jar 集成?我在这个问题上坚持了将近两天。只需要几个步骤的信息即可完成此操作。请有人帮助我...这对我来说真的非常重要...谢谢
嘿大家,我终于找到了解决方案。我真的不知道我会想出这么简单的解决方案。我采纳了@Thorbjørn Ravn Andersen 的想法。我所做的就是首先获取 jar 文件的时间戳,然后使用 URLClassLoader 加载 jar。如果 jar 文件的时间戳发生变化(即,当我用更新的 jar 替换 jar 时),那么我将使用 close() 丢弃旧的 URLClassLoader 对象,并再次使用 URLClassLoader 加载新的 jar。我每次唯一需要检查的是jar的时间戳是否改变。希望这个答案也对其他人有帮助。感谢大家的支持。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)