Iam在eclipse(Equinox)中使用OSGi框架工作来开发一些应用程序。实际上我是OSGi框架的新手。虽然我试图在eclipse中使用start commant(osgi> start)运行程序'没有捆绑特定'正在显示。使用commant(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!!");
}
}
答案 0 :(得分:2)
首先,我假设你在Eclipse中创建插件/ bundle并在“作为eclipse应用程序运行时”进行测试。这将打开一个“运行时eclipse”,其中启用了工作区捆绑(您在主日食中安装的那些以及您在工作区中自己创建的那些)。
start命令应该接收一个包含名称的参数,如
start my-bundle
这就是为什么你得到“没有指定捆绑!”。 更简单的视图是Eclipse中的“插件注册表”视图(alt + shift + q,q - >类型插件 - >选择插件注册表) 在长列表中找到您的包(有一个过滤器框)。
插件图标上是否有绿色的“播放”图标? 如果有,请检查您的控制台“Hello World!”应该已经打印出来了。
没有箭头? 右键单击该图标,然后选择“显示高级操作”。再次右键单击并选择“开始”。那应该是你的激活剂。
基本上Eclipse不运行插件的激活器,直到某些其他软件包实际需要它。当插件中有UI贡献时,则需要其中一个类并且激活器运行,如果没有,则必须手动运行它,或者尝试从其他一些捆绑包中使用它。
只是为了确保打开plugin.xml并转到Overview选项卡。 确保选中“加载其中一个类时激活此插件”。