本文对应书本5.1.3的内容

书本中通过CVS下载的源码

但是笔者实践的时候发现无法下载...地址已经失效了(也许是笔者的失误输错地址所致)

可以用git下载

地址是:

http://git.eclipse.org/c/equinox

进入需要下载的组件的页面 在最下面有git clone的地址

http://git.eclipse.org/c/equinox/rt.equinox.framework.git/ 写道
Clone
git://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
ssh://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
http://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git

在eclipse中下载很简单 打开git仓库的面板 输入地址即可

选择需要的导入就可以了

接下来配置run configuration

和书中一样这里截图略过:


 

接下来是dev.properties文件和conf.ini文件 如下:

  1. BundleHelloworld=bin
  2. org.eclipse.osgi=bin
  3. @ignoredot@=true

conf.ini:

  1. #和书中相比多了很多其他的bundle 这些是启动console必需的
  2. osgi.bundles=reference:file\:G:/osgi_workbench/test/BundleHelloworld@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.apache.felix.gogo.command_0.10.0.v201209301215.jar@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.apache.felix.gogo.shell_0.10.0.v201212101605.jar@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.eclipse.equinox.console_1.0.100.v20130429-0953.jar@start
  3. osgi.bundles.defaultStartLevel=4
  4. osgi.framework=file:H:/repository/git/rt.equinox.framework/rt.equinox.framework/bundles/org.eclipse.osgi
  5. #osgi.framework=file/:E:/eclipseForEE/osgi_test/eclipse/plugins/org.eclipse.osgi_3.9.1.v20130814-1242.jar
  6. eclipse.ignoreApp=true
  7. osgi.noShutdown=true
  8. osgi.console=

有关以上比书本上多的那几个jar 看:

http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fconsole_shell.htm

可以直接用eclipse的plugins文件夹下的

没有那几个jar BundleHelloworld可以运行 但不会出现 osgi>

并且会有错误信息 如下:

log 写道
!SESSION 2013-12-23 13:33:04.949 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.7.0_40
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Command-line arguments: -dev file:E:/eclipseForEE/osgi_test/config/dev.properties

!ENTRY org.eclipse.osgi 4 0 2013-12-23 13:33:05.347
!MESSAGE Could not find bundle: false
!STACK 0
org.osgi.framework.BundleException: Could not find bundle: false
at org.eclipse.core.runtime.internal.adaptor.ConsoleManager.checkForConsoleBundle(ConsoleManager.java:58)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:323)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:222)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

注意bundle中的文件前应该有 reference:file: 不然会提示找不到

在以上新建的java application中点run 会出现以下信息就代表运行成功:

《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_2_建立开发环境的更多相关文章

  1. KiCad EDA 原理图库的最佳实践

    KiCad EDA 原理图库的最佳实践 由于有 Alias 别名元件,可以不用一个每一个元件都有一个元件. 对每种元件类型建议一个元件库. 因为 Value 和 元件名是一样的,所以元件名要尽可能的简 ...

  2. GraalVM最佳实践,使用Java开发CLI、Desktop(JavaFX)、Web(SpringBoot)项目,并使用native-image技术把Java代码静态编译为独立可执行文件(本机映像)

    原创文章,转载请注明出处! 源码地址: Gitee Gtihub 介绍 GraalVM最佳实践,使用Java开发CLI.Desktop(JavaFX).Web(SpringBoot)项目,并使用nat ...

  3. Guava Cache 原理分析与最佳实践

    前言 目前大部分互联网架构 Cache 已经成为了必可不少的一环.常用的方案有大家熟知的 NoSQL 数据库(Redis.Memcached),也有大量的进程内缓存比如 EhCache .Guava ...

  4. Mysql索引最佳实践笔记0524

    #mysql5.7 innodb默认存储引擎 一.关于索引二.最佳实践三.避坑实践 一.关于索引 1.索引的作用 -提高查询效率 -数据分组.排序 -避免回表查询 -优化聚集查询 -用于多表join关 ...

  5. 【大数据和云计算技术社区】分库分表技术演进&最佳实践笔记

    1.需求背景 移动互联网时代,海量的用户每天产生海量的数量,这些海量数据远不是一张表能Hold住的.比如 用户表:支付宝8亿,微信10亿.CITIC对公140万,对私8700万. 订单表:美团每天几千 ...

  6. web前端开发最佳实践笔记

    一.文章开篇 由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于<web前端开 ...

  7. Java开发最佳实践(一) ——《Java开发手册》之"编程规约"

    Java开发手册版本更新说明 专有名词解释 一. 编程规约 (一) 命名风格 (二) 常量定义 (三) 代码格式 (四) OOP 规约 (五) 集合处理 (六) 并发处理 (七) 控制语句 (八) 注 ...

  8. 《深入理解Android:Telephon原理剖析与最佳实践》学习笔记(系统框架)

        Android智能手机的系统结构: 智能手机的硬件基本结构大多采用双处理器架构:主处理器和从处理器,主处理器主要运行开放式操作系统以及操作系统之上的应用,负责整个系统的控制,称之为AP,从处理 ...

  9. PHP核心技术与最佳实践--笔记

    <?php error_reporting(E_ALL); /* php 5.3引入 延迟静态绑定 */ /* php5.4引入trait,用来实现多层继承 trait Hello{} trai ...

随机推荐

  1. 基于Linux的视频传输系统(上大学时參加的一个大赛的论文)

    文件夹 1原创性声明----------------------------------------------------3 2 摘要-------------------------------- ...

  2. unix shell: ksh fundamental(Korn Shell)

    Korn Shell 参考:ksh 学习 http://bbs.chinaunix.net/thread-1749811-1-1.html 1.语法 特殊的文件 /etc/profile 在登录时首先 ...

  3. makefile 必知必会

    Makefile 必知必会 Makefile的根本任务是根据规则生成目标文件. 规则 一条规则包含三个:目标文件,目标文件依赖的文件,更新(或生成)目标文件的命令. 规则: <目标文件>: ...

  4. 搭建Go开发及调试环境(LiteIDE + GoClipse)

    搭建Go开发及调试环境(LiteIDE + GoClipse) -- Windows篇 这里以Windows7 64位为例,如果是32位环境需安装对应版本程序. 一.安装golang1.2.2 1.3 ...

  5. netduino第一步,环境配置

    在netduino.com的官网介绍下,我很快就入门,现在的最新netduino的版本是4.3,但4.3是运行在win8下的,在codeplex.net上有,大部分人还使用的是win7,因此我现在采用 ...

  6. C++基础学习笔记----第七课(面向对象的基本概念)

    主要讲面向对象的基本概念和一些概念,以及实现简单的面向对象C++程序. 类和对象 基本概念 类和对象是面向对象中的两个基本概念,类是指一类事物,是一个抽象的概念.对象是指某一个类的实体,是一个具体存在 ...

  7. C#用正则表达式去掉Html中的script脚本和html标签

    原文 C#用正则表达式去掉Html中的script脚本和html标签 /// <summary>         /// 用正则表达式去掉Html中的script脚本和html标签     ...

  8. 关于时间,日期,星期,月份的算法(Java中Calendar的用法)(一)

    package cn.outofmemory.codes.Date; import java.util.Calendar; import java.util.Date; public class Ca ...

  9. Swift - 使用set,get确保索引加减在正常的范围内

    通过类的计算属性set和get,我们可以对索引的加减进行保护.下面是一个样例,索引index初始值是0,有效范围是0~2.不管是index++还是index--,索引都是一直在这个范围能循环遍历. 1 ...

  10. Codeforces Round #218 (Div. 2)

    500pt, 题目链接:http://codeforces.com/problemset/problem/371/A 分析:k-periodic说明每一段长度为k,整个数组被分成这样长度为k的片段,要 ...