gpt4 book ai didi

java - 没有指定 bundle

转载 作者:行者123 更新时间:2023-11-30 05:01:00 25 4
gpt4 key购买 nike

我在 eclipse(Equinox) 中使用 OSGi 框架来开发一些应用程序。实际上,我是 OSGi 框架的新手。当我尝试使用启动命令 (osgi> start) 在 eclipse 中运行该程序时,显示“没有指定的包”。使用命令(osgi> ss)检查框架是否安装时显示消息“框架已关闭”。我还包括 Equinox 的 jar 文件(org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar) .以下是代码

package testosgi;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {

/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
System.out.println("Hello java World!!");
}

/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
System.out.println("Goodbye java World!!");
}

}

最佳答案

首先,我假设您正在 Eclipse 中创建插件/ bundle ,并在“作为 Eclipse 应用程序运行”时对其进行测试。这将打开一个“运行时 Eclipse”,其中启用您的工作区 bundle (您在主 Eclipse 中安装的 bundle 以及您在工作区中自己创建的 bundle )。

启动命令应该接收一个带有包名称的参数,例如

start my-bundle

这就是为什么您收到“未指定 bundle !”的信息。一个更简单的 View 是 Eclipse 中的“插件注册表” View (alt+shift+q,q -> 类型插件 -> 选择插件注册表)在长列表中找到您的 bundle (有一个过滤框)。

  1. 插件图标上是否有绿色的“播放”图标?如果有,请检查您的控制台是否显示“Hello World!”应该已经打印出来了。

  2. 没有箭头?右键单击该图标并选择“显示高级操作”。再次右键单击并选择“开始”。这应该会运行您的激活器。

基本上,Eclipse 不会运行您的插件的激活器,直到其他软件包实际需要它为止。当插件中有 UI 贡献时,则需要其中一个类并且激活器运行,如果没有,则必须手动运行它,或者尝试从其他 bundle 中使用它。

为了确保安全,请打开您的plugin.xml 并转到“概述”选项卡。确保选中“加载其类之一时激活此插件”。

关于java - 没有指定 bundle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729674/

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