`
raymond.chen
  • 浏览: 1437242 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Equinox的入门范例

    博客分类:
  • OSGi
阅读更多

1、从Eclipse安装程序中找到org.eclipse.osgi_3.3.0.v20070530.jar文件(版本字符串取决于你的Eclipse)并将它复制到一个空目录。为了保持命令的简短, 我们重命名该文件为equinox.jar。

 

2、在DOS命令窗口中定位到equinox.jar文件所在目录下,并执行以下命令:

     java -jar equinox.jar -console

 

     如果屏幕出现 osgi> 提示符,则说明OSGi已经成功运行了。

 

    可以输入ss命令,查看已经安装的Bundle列表和它们当前的状态信息:

这表示有一个Bundle已被安装和激活,并且它是系统Bundle。这是一个在OSGi中总是存在的特殊Bundle,它表示框架本身。

 

3、创建自己的Bundle

     在同一目录下创建一个名为HelloActivator.java的类文件,该类必须实现BundleActivator接口,源码如下:

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

public class HelloActivator implements BundleActivator {
	public void start(BundleContext context) throws Exception {
		System.out.println("start hello bundle!");
	}

	public void stop(BundleContext context) throws Exception {
		System.out.println("stop hello bundle!");
	}
}

 
4、创建Bundle的描述文件

    一个Bundle需要一个MANIFEST文件来声明各种关于Bundle的描述数据,例如它的名称,版本等等。这里创建一个名为Hello.MF的文件,内容如下:

Manifest-Version: 1.0
Bundle-Name: Hello
Bundle-Activator: HelloActivator
Bundle-SymbolicName: Hello
Bundle-Version: 1.0.0
Import-Package: org.osgi.framework

  注意:文件必须以一个空行结尾,否则,jar命令行工具会截去文件最后一行内容。

 

    导入包:Import-Package: com.cjm.bundle.user.service;version="[1.0.0,2.0.0)", org.osgi.framework;version="1.3.0"

 

    导出包:Export-Package: com.cjm.bundle.user.manager;version="1.0.1", com.cjm.bundle.user.service;version="1.0.0"

 

    方括号意味着包括,圆括号意味着排除。  

 

    如果缺少 Import-Package: org.osgi.framework 描述,则会抛出类似以下的异常信息:

org.osgi.framework.BundleException: The activator HelloActivator for bundle Hello is invalid
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:141)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:970)
	......
Caused by: java.lang.NoClassDefFoundError: org/osgi/framework/BundleActivator
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:621)

 

5、编译打包Bundle

     在新的DOS命令窗口中定位到equinox.jar文件所在目录下,并按顺序执行以下两个命令:

          javac -classpath equinox.jar HelloActivator.java
          jar -cfm Hello.jar Hello.mf HelloActivator.class

     将会在当前目录下生成一个名为Hello.jar的文件

 

6、安装Bundle

     在OSGi控制台中执行以下命令: install file:Hello.jar ,控制台输出Bundle id is 1。重新执行ss命令可以看到Bundle已被成功安装。

 

7、启动Bundle

     在OSGi控制台中执行以下命令:  start 1 ,其中1是Bundle的id

 

8、停止Bundle

     在OSGi控制台中执行以下命令:  stop 1 ,其中1是Bundle的id

 

9、卸载Bundle

     在OSGi控制台中执行以下命令:  uninstall 1 ,其中1是Bundle的id

 

  • 大小: 11.2 KB
  • 大小: 10.1 KB
分享到:
评论

相关推荐

    equinox快速入门

    【标题】"Equinox快速入门"是针对IBM的开源OSGi框架Equinox的学习指南,它主要帮助初学者理解和掌握如何在开发环境中使用Equinox。OSGi(Open Service Gateway Initiative)是一种模块化系统,用于Java应用程序的...

    equinox-1.7

    Equinox是Eclipse项目的一部分,它是一个开源的OSGi(开放服务网关规范)实现,用Java编写。OSGi是一种模块化系统,用于管理和运行Java应用程序。标题中的"equinox-1.7"指的是Equinox的1.7版本,这可能是该版本的一...

    equinox-SDK-3.7.zip equinox-SDK-3.7.zip

    equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip

    深入理解OSGi:Equinox原理、应用与最佳实践源代码+equinox-SDK-3.8源代码

    本资源提供了深入理解OSGi:Equinox原理、应用与最佳实践的源代码分析,以及equinox-SDK-3.8的源代码,对于学习和研究OSGi技术具有极高的价值。 首先,让我们深入了解OSGi的核心概念: 1. **模块化**:OSGi的核心...

    Geting started with Equinox and OSGi

    描述:在Dzone论坛上发现的一个快速入门卡片教程,为初学者提供了一瞥。 知识点: 1. **Equinox简介**:Equinox是一个高度模块化、动态的Java运行环境,基于OSGi框架规范构建。它体积小巧,性能卓越,且高度可定制...

    使用Equinox开发OSGI应用程序工程及源码

    **使用Equinox开发OSGI应用程序工程及源码详解** OSGi(Open Service Gateway Initiative)是一种模块化系统和Java服务框架,它允许在运行时动态发现、安装、卸载和更新软件模块。Equinox是Eclipse基金会提供的一个...

    OSGi and Equinox

    标题“OSGi and Equinox”和描述“OSGi and Equinox, Creating Highly Modular Java Systems”表明本文旨在介绍OSGi框架以及它在Eclipse环境下的具体实现Equinox。OSGi是一个Java模块化平台,它允许多个独立的模块...

    深入理解OSGi:Equinox原理、应用与最佳实践

    ### 深入理解OSGi:Equinox原理、应用与最佳实践 #### OSGi概述 OSGi(Open Service Gateway Initiative)是一种模块化系统和服务组件模型,它为Java平台提供了一种动态部署、管理和更新应用程序和服务的方法。...

    equinox-SDK-3.8

    Equinox是Eclipse项目的一部分,它是一个开源的OSGi实现,用Java编写,主要用于构建模块化应用程序。OSGi(Open Service Gateway Initiative)是一种Java服务框架,它定义了一种标准的模块化系统,允许Java应用程序...

    equinox-SDK-3.6.1

    eclipse de osgi框架 equinox-SDK-3.6.1.part1

    equinox-SDK-4.18.zip

    Equinox SDK 4.18 是一个用于开发和运行OSGi(Open Service Gateway Initiative)应用程序的框架。OSGi是一种模块化系统,它允许Java应用程序以更细粒度的组件进行构建,增强了可维护性、可扩展性和可升级性。...

    equinox-SDK-3.8.2

    Equinox SDK 3.8.2 是一个针对OSGi(开放服务网关倡议)标准的实现框架,由Eclipse基金会维护。OSGi是一种模块化系统和Java应用程序框架,它允许在运行时动态发现、组合和配置软件组件。下面将详细阐述Equinox SDK...

    equinox-SDK-4.22M1.zip

    Equinox SDK 4.22M1 是 Eclipse 组织发布的一个重要的软件开发工具包,主要针对 OSGi(Open Service Gateway Initiative)框架。OSGi 是一个用于Java平台的模块化系统,它允许开发者将应用分解为独立的、可重用的...

    equinox-SDK-Oxygen

    Equinox是Eclipse项目的一部分,它是一个开源的OSGi(Open Service Gateway Initiative)框架的实现。OSGi是一种模块化系统,用于Java应用程序的构建、部署和管理,它提供了动态发现和依赖管理的能力,使得开发者...

    基于Equinox开发OSGi应用(一)

    在本篇博文中,我们将探讨如何使用Equinox作为框架来开发OSGi应用程序。Equinox是Eclipse项目的一个组件,它提供了OSGi规范的实现,使我们能够构建模块化、可扩展且灵活的Java应用程序。OSGi(Open Service Gateway ...

Global site tag (gtag.js) - Google Analytics