osgi控制台在RCP程序中开发的应用

OSGi的实现本身有一个控制台,提供插件的查看和管理功能。而Eclipse是基于OSGi的平台应用,这样我们可以使用这个控制台辅助进行插件的管理,调试等工作…

一、管理和诊断

从事插件开发的各位同行也许都遇到过这样的问题:某 个插件在发布以后无法启动,在Eclipse的插件列表中也看不到。这种情况一般是插件打包的时候出错,或者插件的依赖项不能满足。 如果项目的插件本身就比较多,或者依赖项比较多,这种问题查起来就非常痛苦。(Eclipse的插件列表会自动忽略某些无法启动的插件,无法通过 Eclipse本身的插件列表排查问题)

而OSGi的控制台,允许你通过命令行的方式,对插件进行安装,卸载,启动,更新等操作,通过这样的方式进行排查。

例如,我们创建两个插件,example.TestA和example.TestB,插件B依赖插件A。然后只把插件B放到Eclipse的dropins目录下,这样我们是看不到example.TestB这个插件的,也无法使用它提供的功能。

此时,我们在启动eclipse的时候增加一个参数”- console”,就会同时启动一个控制台窗口,输入ss命令,会看到所有的bundle的信息列表:

还可以在命令后面增加参数过滤:

有的时候,这里也看不到插件,还可以使用install命令安装。

使用diag命令,可以对某个插件进行诊断:

 

二、在调试中应用

在插件开发过程中,我们调试插件,一般情况下,只要 不是对类的结构进行改变,都可以在DEBUG模式下,进行代码的热替换,即debug模式修改代码,无需重启,即可看到最新的效果。 但是,一般情况下,对于plugin.xml等文件进行的修改,则必须重新启动debug才可以看到修改的效果。

而使用OSGi的update命令,就可以省去这个麻烦。

首先,在调试启动的时候,需要增加-console参数:

这样在启动后,就可以在eclipse的控制台输入OSGi的命令了:

我们的插件B,在提供了一个菜单:

这个菜单的Label是配置在plugin.xml里的,我们修改一下这个值,然后在控制台输入下面的命令:

也可以输入update <id>,id就是你的插件bundle的id,这里就是760。

可以看到无需重新启动,菜单项已经改变:

 

ReAct框架到多智能体协作:OpenClaw任务分解机制的演进与突破 AI的最终价值是落地,是帮用户解决实际问题,而不是停留在聊天界面里。从ReAct框架到多智能体协作,OpenClaw的任务分解体系走了一条非常务实的路线:所有的优化都是为了解决真实场景里的痛点,所有的设计都是为了让用户用起来更省心。很多人说现在的AI还是“人工智障”,那是因为他们没有用到真正能落地的AI产品。当你用过OpenClaw,体验过你说一句话它就能把一整套复杂任务全都做完的感觉,你就会明白:AI代替人做重复性工作的时代,已经真的来了。 阅读详情

相关推荐

避坑指南:Quectel EC200A-CN在OpenWrt或嵌入式Linux下的RNDIS/ECM网络配置全解析

本文详细解析了Quectel EC200A-CN模块在OpenWrt或嵌入式Linux下的RNDIS/ECM网络配置,包括模式选择、内核配置、动态切换AT指令、网络接口生成与排错、路由与防火墙设置、性能调优及特殊场景应对策略,帮助开发者避免常见配置陷阱,提升网络稳定性和效率。

weixin_42531588的博客 286

java 启动 osgi_OSGi开发起步

OSGi开发起步(Getting Started with OSGi)-1第一个OSGi模块原文出自:http://neilbartlett.name/blog/osgi-articles/- Getting Started with OSGihttp://hi.baidu.com/tinawhisper/home本文系翻译文章,但并未严格按照原文翻译。1. 第一个OSGi模块本文期望展示OS...

weixin_42334285的博客 928

orangepi 5 plus ubuntu24.04上安装redroid

OrangePi 5 Plus运行reDroid云手机方案总结 在RK3588+Ubuntu 24.04上部署reDroid(Android容器化方案)的关键步骤: 内核要求:确保启用binderfs(无需ashmem,新版reDroid使用memfd替代); 安装流程: 安装Docker并配置代理加速镜像拉取; 拉取reDroid镜像(推荐Android 12/13 ARM64版本); 通过挂载binderfs启动容器,指定分辨率与DPI参数; 多实例管理: 脚本化创建多个容器(如8个实例),分配独立端口

babytiger的专栏 2288

osgi java_使普通的旧Java OSGi兼容

osgi java 尽管OSGi在Java世界中越来越流行,但仍有许多Java应用程序和库尚未设计成可在OSGi中使用。 有时您可能需要在OSGi环境中运行这样的代码,或者是因为您想利用OSGi本身提供的好处,或者因为您只需要此特定环境提供的某些功能。 通常,您负担不起完全迁移到OSGi的负担,或者至少需要一个过渡期,在此期间,您的代码在OSGi内外均可以正常工作。 当然,您想以最小的努力做到...

最佳 Java 编程 338

InsightFace实战:如何在树莓派上部署轻量级人脸识别系统(附完整代码)

本文详细介绍了如何在树莓派上部署基于InsightFace框架的轻量级人脸识别系统。通过硬件选型、环境配置、模型优化(如MobileFaceNet)及完整代码实战,指导开发者构建本地化、低功耗的智能应用,如智能门铃,并提供了性能调优与系统服务化的进阶技巧。

weixin_29043895的博客 351

关于keil编译报.sct (7): error: L6236E: No section matches selector - no section to be FIRST/LAST.处理方法

使用keilUvision5向下兼容,选择S3C2440主款芯片编译运行汇编语言。 出现了一个错误: . \objectslex3-2.sct (7): error: L6236E: No section matches selector - no section to be FIRST/LAST. 我在网上搜了很多,没有找到适合修正我这里的错误的。故咨询陈老师,终于将这个错误解决。 错误如下: 修改过程: 打开小仙女棒 将linker的Use Memory Layout fromTarget Dial

weixin_45865666的博客 9523

osgi 学习系列(三)自定义osgi控制台命令

为了后面demo的结果显示需要先说下自定义osgi控制台命令,自定义命令的类必须实现org.eclipse.osgi.framework.console.CommandProvider接口 该接口中只有一个方法public String getHelp()用于在help方法中添加我们自定义命令的描述 自定义命令也很简单,只要写一个以下划线+命令的方法即可,比如我想自定义一个say命令 p...

网站开发初中级代码参考-转载 383

Qt —— 百度地图 - 3、Qt调用高德在线地图功能示例(附源码)

Qt - 地图相关 —— 3、Qt调用高德在线地图功能示例(附源码)

497

开启RCP平台中osgi的console,用于查个插件状态

开启RCP平台中osgi的console,用于查个插件状态: 1、在启动参数中增加 -console,若脚本中存在“&”(linux下后台运行命令),则删除 2、确定plugins文件夹下存在下列插件,若不存在,则从对应版本eclipse中得到 org.apache.felix.gogo.command org.apache.felix.gogo.runtime org.apac

李小佳的博客 2591

面向 OData V4 的 Fiori elements 为何强制使用 draft、它到底是什么、以及是否能关闭

本文深入解析了SAP Fiori elements中draft handling的核心机制与必要性。关键点包括:1)draft机制通过中间版本实现复杂编辑的安全恢复与并发控制;2)Fiori elements for OData V4强制要求draft-enabled服务支持事务编辑;3)非draft服务仅适用于只读场景;4)替代方案需承担完全自定义开发的成本。文章基于SAP官方文档,系统阐述了draft在事务型应用中的基础性作用,为架构决策提供了明确指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 265

【图像去噪】论文复现:CLIP用于图像去噪提升泛化性!CLIPDenoising的Pytorch源码复现,跑通CLIPDenoising全流程,图文结合,网络结构梳理和拆解,对应源码注释!

论文题目:Transfer CLIP for Generalizable Image Denoising —— 用于可泛化图像去噪的转移CLIP。【图像去噪】论文精读:Transfer CLIP for Generalizable Image Denoising(CLIPDenoising)CLIPDenoising理论部分详解见上面对应的论文精读,本文以源码为主,理论部分只是粗略回顾。启发:多看其他领域的文章,分析是否能应用在去噪领域,这是产生idea的要素之一;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1412

在控制台中启动osgi框架

windows平台下,运行--->cmd,键入 java -jar org.eclipse.osgi_3.5.0.v20090520.jar  - console

cuseronline的专栏 687

【应用】OpenClaw玩转有道云笔记

功能名称核心原理实操示例(直接复制可用)实操避坑+补充说明网页剪藏插件自动抓取网页正文、下载图片,通过 API 发送到你的有道云笔记,内联图片避免防盗链失效帮我把这个网页剪藏到云笔记:https://example.com/article1. 避坑:知乎、公众号等需登录的网站,先在浏览器登录再剪藏;2. 原理:自动过滤广告,只留正文;3. Twitter/X 剪藏需额外配置 APIFY_API_TOKEN(见1.2.4)创建笔记。

海兰 712

【eclipse插件开发实战】Eclipse插件开发3——OSGi、RCP

Eclipse插件开发实战3——OSGi、RCP 一、OSGi 1. 什么是OSGi框架   OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环境里的服务平台。框架提供的主要功能是对应用和组件的生命周期管理,系统可以在无需重启的情况下,远程操纵组件的安装、启动、停止。   OSGi框架不仅用于Eclipse,从移动...

weixin_30535167的博客 213

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

eclipse的conosle参数,开启osgi控制台

运行插件或RCP项目时,加入-console参数 可查看osgi控制台   查看equinox源代码可知,有console参数时,就会开启一个osgi控制台。

cuseronline的专栏 922

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

在Eclipse RCP中应用Spring OSGI 管理bean(二)

在文章一中,引用了Ralf Ebert的文章,讲述了整个实现的机制和原理,我在实际的实验工程中,遇到了一些问题,真实的记录下来,为后来者戒。 1、在把org.eclipse.springframework.util插件导入自己的workspace中时,如果没有在自己的eclipse runtime中设置spring bundle的位置,工程会报错,找不到导入的包。于是找到s...

沧海一粟 286

Eclipse开发RCP应用程序中的一些问题

[b]problem[/b] The key can be found in the message: '![color=red]MESSAGE Missing required bundle[/color] com.dawnatech.misc_0.0.0.' -- note the version number of 0.0.0. [b]answer[/b] This is due to...

吾生也有涯,而知也无涯 765

关于Eclipse RCP的两个小问题和解决方法

1、如果你想在RCP应用程序里使用Eclipse提供的Resource Navigator(它是IDE plugin的一部分),要在WorkbenchAdvisor里加入如下代码,否则在Navigator里新建的项目和文件名都会变为空: WorkbenchAdapterBuilder.registerAdapters();一 般加在preWindowOpen()...

diaozhuo4700的博客 240

RCP编程技巧:Eclipse rcp应用发布后运行时报错java.lang.RuntimeException: 问题的解决

今天,我重新发布我的Rcp应用后,不能运行,打开日志文件,报错如下: !SESSION 2006-04-30 10:04:57.584 ----------------------------------------------- eclipse.buildId=unknown java.version=1.4.2_09 java.vendor=Sun Microsystems I

君子藏器于身,待时而动 1990

Eclipse插件(RCP)org.osgi.framework.BundleException: Could not resolve module: org.eclipse.aaa.bbb.cccc

记述了Eclipse 启动后报 org.osgi.framework.BundleException: Could not resolve module: org.eclipse.xxx.aa.mm的问题

小子宝丁的博客 4003

osgi 配置 launcher 启动

1、概述      上文我们对Equinox OSGi运行环境的组成及搭建过程做了详细讲述。本文主要对Equinox OSGi运行环境的可配置参数及其作用加以介绍,从而使用户在实际使用过程中可以对Equinox运行环境更好地进行控制。         Equinox项目沿袭Eclipse的特点,具有高度的可配置性。用户可以通过命令行参数或系统属性参数(JVM属性参数)两种方式对Equinox...

MMCCG的博客 956

基于 OSGi 的面向服务的组件编程

一. OSGi 简史 OSGi 是由 1999 年成立的 OSGi 联盟提出的一个开放的服务规范,最初的目的是为嵌入式设备,确切地说是为可以通过网络访问的设备提供一个通用的软件运行平台,屏蔽不同设备之间的硬件和操作系统差异,使软件可以动态地部署和更新。后来 Eclipse 组织注意到了 OSGi 的优点,决定将 Eclipse3.0 及后续版本的插件体系结构基于 OSGi 来实现,并专门成立了一...

GarfieldEr007的专栏 725

01 使用 maven 来管理 rcp 项目的依赖

前言

970655147的专栏 1313

OSGI EQUINOX 参数配置

equinox

smithdoudou88的专栏 1041

Mac版Eclipse RCP导出

转载请标明出处! 背景介绍 由于公司产品需要支持mac电脑使用, 将之前的win10中开发的rcp迁移到mac, 由于产品插件比较混乱.迁移过程中遇到不少的坑. 再加上e4和3.x的兼容性问题. 在mac中按向导创建一个3.x的application sample工程,直接运行是没法运行的. 简直崩溃.本人使用的是eclipse4.6.3 neno版本. 在经历万般艰辛之后,总...

thankyou2008_的专栏 588

osgi 学习系列(九)osgi 日志

Osgi可以使用的日志有好几种方式log4j 、pax logging、logService、slf4j+logback最后研究下来slf4j+logback比较好用,下面演示该方式的配置。 参考文档 http://hbkh2000.iteye.com/blog/1028307 1. 必须jar包 首先我们需要下载需要的一下jar包 SLF4J   下载地址:http://www

ferry_passion 7135

OSGi 和 C++

2011年 9月我参加了OSGi社区在达姆施塔特的会议,并且有机会与其他与会者探讨本机c++实现的OSGi规范的现状。在这一事件之前我也一直想写一篇博客,来描述关于当前实现OSGi规范的现状和努力——类似于C / c++实现的OSGI框架。最后,这篇文章会给出OSGi本机实现的概述。 简介 我第一次了解OSGI组件模型是在7年前开发一个Eclipse RCP应用程序。我现在更多从事C++...

weixin_30418341的博客 798
上一篇: equinox在standalone application中启动
下一篇: 在Eclipse RCP中应用Spring OSGI 管理bean(一)
tkxing
博客等级 码龄19年 1粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值