我有一个OSGi包,也可以运行在普通的Java过程。我需要能够判断该捆绑包是否已加载到OSGi系统中。我怎样才能做到这一点?如果没有这样做的OSGi标准的方式,我会解决特定于Eclipse/Equinox的方法。如何检测是否在osgi容器中运行
4
A
回答
6
如果您没有激活剂,你也可以试着问你的包:
Bundle b = org.osgi.framework.FrameworkUtil.getBundle(MyClass.this);
如果返回null,类没有被加载OSGi的。
10
1
您可以检查“this.getClass()。getClassLoader()instanceof org.osgi.framework.BundleReference”,如果您在R4.2 OSGi框架中运行,只应该是true。
+0
我正在使用eclipse安装中的测试,并将org.eclipse.osgi作为类加载程序包的开始。我决定检查非osgi情况下类加载器的名称是什么(com.sun ....我忘记了,现在我在家里),这使我的测试可以在其他OSGI实现中开放,尽管它受到其他非osgi类加载器实现的使用,并将扳手投入工作。 – Chris 2011-06-02 00:13:33
相关问题
- 1. 检测我是否在SharePoint中运行
- 2. javascript检测是否在hta中运行
- 3. 如何检测媒体播放器是否正在运行
- 4. 如何检测Windows机器是否正在运行IPV4或IPV6?
- 5. 检测是否Qt是在运行时
- 6. 如何在运行时检测.NET中是否存在类?
- 7. 如何检测我是否在AWS Lambda环境中运行?
- 8. 如何检测程序是否在valgrind中运行?
- 9. 如何检测程序是否在PAR档案中运行?
- 10. 如何检测我是否在单一服务中运行?
- 11. 如何检测代码是否从Rails服务器运行?
- 12. 检测MediaBrowserServiceCompat是否正在运行
- 13. 检测CountdownTimer是否正在运行
- 14. 如何检查比赛检测器是否在运行时启用?
- 15. OSGI:如何运行
- 16. 如何检测网页是否在iPhone的嵌入式浏览器中运行?
- 17. 如何检测机器是否在线?
- 18. 批量 - 如何检测游戏服务器是否在机器上运行
- 19. 如何检测它是否在iPhone或iPad上运行?
- 20. 如何检测我是否在芹菜工人身上运行?
- 21. 如何检测远程计算机是否正在运行RDP?
- 22. Heroku:如何检测工头是否正在运行
- 23. 如何检测特定的Delphi IDE是否正在运行?
- 24. 如何在运行时检测符号是否被剥离?
- 25. 如何检测MySQL数据库是否正在运行?
- 26. Node.js - 如何检测节点脚本是否正在运行?
- 27. android如何检测应用程序是否在过去运行
- 28. 如何检测视频是否在Mac上运行?
- 29. 检测合成器是否正在运行
- 30. 检测SQL服务器是否正在运行
这与“getClass()。getClassLoader()instanceof org.osgi.framework.BundleReference”方法相比如何? OSGi版本的范围 – 2011-05-05 02:43:33
偷窥在实现中,它也依赖于BundleReference,并且可以从OSGi 4.2(eclipse 3.5.x?)上得到,我推荐它通过检查实例,因为它是API。 – 2011-05-05 11:08:54
请注意, instanceof“check也是API,因为规范指出bundle的类加载器必须实现BundleReference。 – 2014-07-16 02:29:00