gpt4 book ai didi

java - 如何获取 Eclipse RCP 应用程序的 OSGi BundleContext?

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:00 24 4
gpt4 key购买 nike

我刚刚开始使用 Eclipse RCP 应用程序,它基本上只是提供的“hello world”示例之一。

当应用程序启动时,我想查看我的命令行参数并根据它们启动一些服务。我可以在 IApplication.start 中获取命令行参数:

public Object start(IApplicationContext context) {
String[] argv = (String[])
context.getArguments().get(IApplicationContext.APPLICATION_ARGS)));
}

但是我如何获得 BundleContext,以便我可以注册服务?它似乎不在 IApplicationContext 中。

最佳答案

刚刚在进行网络搜索时遇到了这个问题,并认为我会推广新的标准 OSGi R4.2 方式(由 Eclipse 3.5 附带的 Equinox 提供)。如果您没有激活器,并且不想创建一个只是为了缓存 bundle 上下文,则可以使用 FrameworkUtil.getBundle。修改前面的例子:

import org.osgi.framework.FrameworkUtil;

public class ExportClassDigestApplication implements IApplication {
public Object start(IApplicationContext context) throws Exception {
context.applicationRunning();
BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass())
.getBundleContext();
}
}

关于java - 如何获取 Eclipse RCP 应用程序的 OSGi BundleContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com