你好 stackoverflow 世界,
我遇到了 Java 插件框架的一个小问题,并且在文档中找不到答案。
问题出奇地简单:如何从系统类加载器中获取插件带来的类?
换句话说:我有一个带有 PluginA 类的插件,并且我希望能够从主应用程序(而不是从插件)实例化 PluginA。默认情况下不允许这样做,因为每个插件都有自己的类加载器...
对我来说最好的方法是在插件存档中包含一个 jar 并将该 jar 加载到系统类加载器中,但如何做到这一点???
如果有人有想法,谢谢!
尼古拉斯
最佳答案
问题已解决。插件由 zip 存档和 jar 组成。 专门用于安装插件及其初始化的代码位于 zip 存档中(以及插件 JPF 类)。而构成插件功能本身的代码位于一个单独的 jar 中,我在运行时使用 http://jimlife.wordpress.com/2007/12/19/java-adding-new-classpath-at-runtime/ 将 jar 添加到类路径中。
关于Java 插件框架 (JPF) 和 SystemClassLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944652/