PF4J

类卸载之后无法删除源文件 PF4J

随声附和 提交于 2019-12-12 10:51:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 背景 我们有一个Plugin的管理系统,可以实现Jar包的热装载,内部是基于一个Plugin管理类库 PF4J ,类似于 OSGI ,现在是GitHub上一个千星项目。 以下是该类库的官网介绍 > A plugin is a way for a third party to extend the functionality of an application. A plugin implements extension points declared by application or other plugins. Also a plugin can define extension points. With PF4J you can easily transform a monolithic java application in a modular application. 大致意思就是, PF4J 可以动态地加载Class文件。同时,它还可以实现动态地卸载Class文件。 问题描述 有个新需求,热更新Plugin的版本。也就是说,将已经被load进 JVM 的旧Plugin版本ubload掉,然后load新版本的Plugin。 PF4J 工作得很好。为了防止过期的Plugin太多,每次更新都会删除旧版本