最简单的例子:Equinox 之 Hello World

16 篇文章 0 订阅

 

 

OSGi框架有三种开源实现来选择:Apache Felix,Knopflerfish和Equinox。这里写的代码在上面的三个实现任意一个上运行都没问题,只是在启动指令上有一些不同。

在这里使用的是Equinox。

一、环境准备

默认已经安装了Java 1.5以上的开发环境。

1、核心框架

      如果链接有问题请访问 http://download.eclipse.org/eclipse/equinox/
  • 或者你已经安装了eclipse,那么可以在eclipse的安装目录下的plugins目录中找到org.eclipse.osgi_3.3.1.R33x_v20070828.jar

2、目录设置

在C:/下创建目录 osgi-dev,将 org.eclipse.osgi_3.3.1.R33x_v20070828.jar 复制到 C:/osgi-dev 目录中。

二、与OSGi "第一次接触"

1、最小的OSGi运行环境

在命令提示符下进入C:/osgi-dev 目录,执行以下命令:

 
 
> java -console -jar org.eclipse.osgi_3 .3.1 .R33x_v20070828.jar

几秒钟,osgi>提示符显示出来。

在osgi>提示符下执行 ss :

 
 
 osgi>ss

显示:

 
 
C:osgi-dev>java -console -jar org.eclipse.osgi_3 .3.1 .R33x_v20070828.jar 
    
osgi> ss
     
Framework is launched.
     
id      State       Bundle
0        ACTIVE      org.eclipse.osgi_3 .3.1 .R33x_v20070828
   
osgi>

这是最小的OSGi运行环境:equinox 正在运行!

为了保持命令的简短,将org.eclipse.osgi_3.3.1.R33x_v20070828.jar重新命名为equinox.jar。

 
 
> java -jar equinox.jar –console

2、编写Hello World的Bundle

  • 在C:/osgi-dev目录下创建一个文件,名为 HelloActivator.java

内容为:

 
 
import  org.osgi.framework. * ;
 
public   class  HelloActivator  implements  BundleActivator {
  
public   void  start(BundleContext context) {
    System.out.println(
" Hello World! " );
  }
 
  
public   void  stop(BundleContext context) {
    System.out.println(
" Goodbye World! " );
  }
}
  • 在C:/osgi-dev目录下创建另一个文件,名为 HelloWorld.mf

内容为:

 
 
Manifest-Version:  1.0
Bundle-Name: HelloWorld
Bundle-Activator: HelloActivator
Bundle-SymbolicName: HelloWorld
Bundle-ClassPath: .
Bundle-Version: 
1.0.0
Import-Package: org.osgi.framework
  • 在osgi>提示符下,执行close命令:
 
 
osgi>close

退出equinox环境。

  • 使用下列命令编译java文件并建立Jar文件:
 
 
> javac -classpath equinox.jar HelloActivator.java
> jar -cfm HelloWorld.jar HelloWorld.mf HelloActivator.class
  • 再次进入equinox环境,并执行 ss 命令:
 
 
> java -jar equinox.jar –console
 
osgi>ss

会发现没什么变化,接下来执行install命令并附带参数:

 
 
osgi>install file:HelloWorld.jar

显示:

 
 
Bundle id is  1

执行ss命令:

 
 
osgi>ss

显示:

 
 
Framework is launched.
 
id      State       Bundle
0        ACTIVE      org.eclipse.osgi_3 .3.1 .R33x_v20070828
1        INSTALLED   HelloWorld_1 .0.0
   
osgi>

执行start 1命令: 

 
 
osgi>start  1

显示:

 
 
Hello World!

osgi>

执行close命令:

 
 
osgi>close

显示:

 
 
Goodbye World!

至此,完成了一个在OSGi的equinox实现环境下的最简单的bundle。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值