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快速入门"是针对IBM的开源OSGi框架Equinox的学习指南,它主要帮助初学者理解和掌握如何在开发环境中使用Equinox。OSGi(Open Service Gateway Initiative)是一种模块化系统,用于Java应用程序的...
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
本资源提供了深入理解OSGi:Equinox原理、应用与最佳实践的源代码分析,以及equinox-SDK-3.8的源代码,对于学习和研究OSGi技术具有极高的价值。 首先,让我们深入了解OSGi的核心概念: 1. **模块化**:OSGi的核心...
描述:在Dzone论坛上发现的一个快速入门卡片教程,为初学者提供了一瞥。 知识点: 1. **Equinox简介**:Equinox是一个高度模块化、动态的Java运行环境,基于OSGi框架规范构建。它体积小巧,性能卓越,且高度可定制...
**使用Equinox开发OSGI应用程序工程及源码详解** OSGi(Open Service Gateway Initiative)是一种模块化系统和Java服务框架,它允许在运行时动态发现、安装、卸载和更新软件模块。Equinox是Eclipse基金会提供的一个...
标题“OSGi and Equinox”和描述“OSGi and Equinox, Creating Highly Modular Java Systems”表明本文旨在介绍OSGi框架以及它在Eclipse环境下的具体实现Equinox。OSGi是一个Java模块化平台,它允许多个独立的模块...
### 深入理解OSGi:Equinox原理、应用与最佳实践 #### OSGi概述 OSGi(Open Service Gateway Initiative)是一种模块化系统和服务组件模型,它为Java平台提供了一种动态部署、管理和更新应用程序和服务的方法。...
Equinox是Eclipse项目的一部分,它是一个开源的OSGi实现,用Java编写,主要用于构建模块化应用程序。OSGi(Open Service Gateway Initiative)是一种Java服务框架,它定义了一种标准的模块化系统,允许Java应用程序...
eclipse de osgi框架 equinox-SDK-3.6.1.part1
Equinox SDK 4.18 是一个用于开发和运行OSGi(Open Service Gateway Initiative)应用程序的框架。OSGi是一种模块化系统,它允许Java应用程序以更细粒度的组件进行构建,增强了可维护性、可扩展性和可升级性。...
Equinox SDK 3.8.2 是一个针对OSGi(开放服务网关倡议)标准的实现框架,由Eclipse基金会维护。OSGi是一种模块化系统和Java应用程序框架,它允许在运行时动态发现、组合和配置软件组件。下面将详细阐述Equinox SDK...
Equinox SDK 4.22M1 是 Eclipse 组织发布的一个重要的软件开发工具包,主要针对 OSGi(Open Service Gateway Initiative)框架。OSGi 是一个用于Java平台的模块化系统,它允许开发者将应用分解为独立的、可重用的...
Equinox是Eclipse项目的一部分,它是一个开源的OSGi(Open Service Gateway Initiative)框架的实现。OSGi是一种模块化系统,用于Java应用程序的构建、部署和管理,它提供了动态发现和依赖管理的能力,使得开发者...
在本篇博文中,我们将探讨如何使用Equinox作为框架来开发OSGi应用程序。Equinox是Eclipse项目的一个组件,它提供了OSGi规范的实现,使我们能够构建模块化、可扩展且灵活的Java应用程序。OSGi(Open Service Gateway ...