OSGi入门(一):基础知识

OSGi是Java的动态模块系统,提供了一种基础架构用于模块化应用开发。主要开源实现包括Knoflerfish、Equinox(Eclipse核心)和Apache Felix。其优势在于动态安装、卸载、启动和停止模块,支持多版本并存,适合嵌入式和RIA应用。创建OSGi Bundle的步骤包括在Eclipse中新建Plug-in Project,选择模板并配置。常用OSGi命令如ss显示Bundle状态,start/stop控制Bundle运行状态等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OSGi : Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。

开源实现:
1,Knoflerfish:是OSGi规范第3版和第4版的开源实现,它实现了OSGi规范规定的必须实现的功能及部分可选功能;
2,Equinox:是参照OSGi规范第4版实现的,它构成了Eclipse IDE的核心—模块化的Java运行时;它实现了OSGi规范4中规定的必须强制实现的功能,同时,它也实现了OSGi规范中大部分的可选功能;
3,Apache的Felix:Apache软件基金会实现的OSGi开源容器,该容器还没有和OSGi规范完全兼容。

OSGi具有以下优点:
1,您可以在不重启容器的情况下,动态地安装、卸载、启动和停止您的应用程序中的不同模块;
2,对于您应用程序中的某一特定模块,容器可以同时运行该模块的多个版本;
3,OSGi为开发嵌入式应用、移动应用、富互联网应用(RIA)提供了非常优秀的基础架构;

开发一个简单的Hello World的OSGi Bundle(OSGi绑定包)

1)新建Bundle
在Eclipse中,点击“File->New->Project”菜单,您将会看到新项目创建对话框;
image

2) 在新项目对话框中,选择“Plug-inProject(插件项目)”并点击“Next(下一步)”按钮,您将看到插件项目对话框;

3) 在插件项目对话框中,请键入下列值:

Project Name(项目名称):com.javaworld.sample.HelloWorld

Target Platform(目标平台):an OSGiFramework->Standard (OSGi框架->标准)

4) 对其它的要求输入值采用缺省值,并点击“Next(下一步)”按钮,您将会看到插件上下文对话框;

5) 在插件上下文对话框中,请选择缺省值并点击“Next(下一步)”按钮;

6) 在模板对话框中,请选择“Hello OSGiBundle(你好,OSGi包)”模板,然后点击“Finish(完成)”按钮完成该项目。

经常使用的OSGi命令:

  1. ss: 该命令显示所有已安装的Bundles及它们的状态,它将显示Bundle ID,Bundle的简短名称及Bundle状态; 
  2. start< bundleid>: 该命令将启动一个Bundle; 
  3. stop< bundleid>: 该命令将停止一个Bundle; 
  4. update< bundleid>: 该命令使用新的JAR文件更新一个Bundle; 
  5. install< bundleid>: 该命令将一个新的Bundle安装到OSGi容器; 
  6. uninstall< bundleid>: 从OSGi容器中卸载一个已安装的Bundle。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值