动态重新加载jar文件内容

我的应用程序的类路径中有一个jar文件。 在运行时,我向jar文件添加新类,有时还修改现有类的字段/方法。 目前我正在使用URLClassLoader动态加载类。 动态添加的新类正确加载,我可以在运行时使用它们。 但它无法重新加载在运行时修改的现有类。 我阅读了许多文章,声明我们需要显式处理重新加载,因为在类的所有引用都被销毁之前,不会重新加载一次加载的类。 此外,我尝试了我找到的示例代码,但没有一个工作。

任何人都可以建议我适当的重新加载方法吗? 任何示例代码都将受到高度赞赏。

通常要重新加载一个类,您需要卸载整个类加载器。 即删除对该类加载器加载的所有类的所有引用。

另一种选择是使用检测来更改现有类的字节代码。 这通常带有限制,不断变化的领域是你做不到的。 即,必须以某种方式翻译该类型的对象。

我通常做的是提供快速启动/重启的服务。 这样,您可以通过在IDE中Run来轻松地重新启动需要更新代码的过程。 这也最大限度地缩短了部署时间。