【问题标题】:How to get Bundle Object from ClassLoader? (Java, OSGI)如何从 ClassLoader 获取 Bundle 对象? (Java、OSGI)
【发布时间】:2018-02-28 16:38:56
【问题描述】:

我正在处理一些旧代码,这取决于:

import org.eclipse.osgi.framework.adaptor.BundleClassLoader;

并在这里使用它:

protected Bundle getBundle() {
    BundleClassLoader cl = (BundleClassLoader) editor.getClass().getClassLoader();
    return cl.getBundle();
}

有没有新的方法可以做到这一点? (从 ClassLoader 中检索包)我没有找到有关此更改的任何资源。 BundleClassLoader 似乎已被弃用..

【问题讨论】:

    标签: java oop osgi bundle classloader


    【解决方案1】:

    您可以使用 FrameworkUtil。

     Bundle b = FrameworkUtil.getBundle( editor.getClass() );
    

    【讨论】:

    • 完美,正是我所需要的。谢谢彼得!
    • 不应该是editor.getClass()吗?还要注意这种方法...它可以返回 null,例如,如果该类是由非 OSGi 类加载器(如引导加载器)加载的。
    • 为类而不是实例编辑
    • 是的,我必须添加 getClass() 但我认为保证更改的差异不大,但我认为彻底是有价值的!再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    相关资源
    最近更新 更多