我正在用 Java 编写一个应用程序插件,我的插件依赖于几个第三方 JAR。我将这些依赖项与我的插件捆绑在一起,这样我就可以只部署一个 JAR 文件。
主机应用程序也可能正在运行来自其他供应商的插件。不幸的是,主机应用程序将所有插件放在类路径上,我无法改变这种行为。如果另一个供应商的插件在我之前加载并使用不兼容版本的依赖项,我的插件可能会崩溃。
我无法提前测试我的插件和其他插件之间的兼容性。我说插件之间不兼容也是不可接受的——如果我的插件崩溃了,这对我的公司来说是很糟糕的。客户并不关心我的插件为什么会崩溃,他们会将其归咎于我的糟糕编程。
我正在寻找一种方法来防止其他供应商的插件干扰我自己的。可能吗?
我听说过自定义类加载器,但我不确定该解决方案是否适合我。