项目建好了,我们来看一下MANIFEST.MF 这个文件
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MyFirstEquinoxExample Plug-in
Bundle-SymbolicName: myFirstEquinoxExample
Bundle-Version: 1.0.0
Bundle-Activator: myfirstequinoxexample.Activator
Import-Package: org.osgi.framework;version="1.3.0"
Eclipse-LazyStart: true
说明一下 Import-Package: org.osgi.framework;version="1.3.0" 这句话的意思是要运行这个例子,必须先导入 版本号为 "1.3.0"的org.osgi.framework包,
我们来看下Activator.java这个类:
package myfirstequinoxexample;
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 World!!");
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
System.out.println("Goodbye World!!");
}
}
看见没,这个类只有两个方法,一个是 start() ,一个是 stop(),其中 start方法是在插件启动/加载的时候调用的,而stop()是在停止/卸载的时候调用的,我们来加点属于自己的东西进去
package myfirstequinoxexample;
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("这是我第一个OSGI的例子,已经成功启动了,一切运行正常");
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
System.out.println("已经成功将这个插件停止/卸载了");
}
}
我们来运行它看看效果,选中项目,右键单击 ,从弹出菜单中选择 "Run As" --> "Open Run Dialog",
打开配置窗口,按照图片中标的序号来(我CS玩的不是很好,画的很难看)
第一步:
双击 OSGi Framework,新建一个运行配置 ,
第二步:
将运行配置名称改成 myFirstEquinoxExample 点击 Apply ,修改生效了
第三步:
单击 Deselect All,全部取消选择,
第四步:
选择我们要启动的项目 myFirstEquinoxExample(1.0.0),然后在单击 Add Required Bundles
第五步:
点击 Run ,OK 启动了