欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Eclipse下编写第一个OSGI Hello World应用

程序员文章站 2022-04-28 09:58:18
...

1.打开Eclipse,依次打开“File -> new -> project -> Plug-in Development -> Plug-in Project”,如下图所示:Eclipse下编写第一个OSGI Hello World应用

若没有Plug-in Development,参考如何解决eclipse中没有plugin development,进行处理。

点击next,输入名称,注意目标平台的选择,由于我们的项目是一个通用的 OSGi bundle,所以选择 equinox,如下图所示:Eclipse下编写第一个OSGI Hello World应用

点击next,更改插件的名称,Options选择第一个缺省的设置,如下图所示:Eclipse下编写第一个OSGI Hello World应用

点击next,不使用任何模板,所以勾掉缺省的选项:

Eclipse下编写第一个OSGI Hello World应用

点击finish,创建成功。

2.打开“src -> org.test.helloworld -> Activator.java”,在start方法中加入打印HelloWorld的代码,如下:

package org.test.helloworld;

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

public class Activator implements BundleActivator {

	private static BundleContext context;

	static BundleContext getContext() {
		return context;
	}

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

	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext bundleContext) throws Exception {
		Activator.context = null;
	}

}
随后保存。

3.打开“Run -> Run Configurations...”,找到OSGI Framework,点击右键选择new,填写名称,选择对应的Workspace,Target Platform选择下图所示的几项,勾掉最下方的选择框:

Eclipse下编写第一个OSGI Hello World应用

4.点击Run,查看控制台是否打印了Hello World,若无报错,则创建成功

Eclipse下编写第一个OSGI Hello World应用


PS:Equinox OSGi 主要的控制台命令表

类别 命令 含义
控制框架 launch 启动框架
shutdown 停止框架
close 关闭、退出框架
exit 立即退出,相当于 System.exit
init 卸载所有 bundle(前提是已经 shutdown)
setprop 设置属性,在运行时进行
控制 bundle Install 安装
uninstall 卸载
Start 启动
Stop 停止
Refresh 刷新
Update 更新
展示状态 Status 展示安装的 bundle 和注册的服务
Ss 展示所有 bundle 的简单状态
Services 展示注册服务的详细信息
Packages 展示导入、导出包的状态
Bundles 展示所有已经安装的 bundles 的状态
Headers 展示 bundles 的头信息,即 MANIFEST.MF 中的内容
Log 展示 LOG 入口信息
其它 Exec 在另外一个进程中执行一个命令(阻塞状态)
Fork 和 EXEC 不同的是不会引起阻塞
Gc 促使垃圾回收
Getprop 得到属性,或者某个属性
控制启动级别 Sl 得到某个 bundle 或者整个框架的 start level 信息
Setfwsl 设置框架的 start level
Setbsl 设置 bundle 的 start level
setibsl 设置初始化 bundle 的 start level
相关标签: eclipse osgi