我有一個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. 如何檢測一個bundle是否完全加載到osgi容器中?
- 2. 如何檢測是否運行ipython qtconsole?
- 3. MSI如何檢測Excel是否運行
- 4. 檢測我是否在SharePoint中運行
- 5. 檢測Windows是否在Parallels中運行?
- 6. javascript檢測是否在hta中運行
- 7. 如何檢測Windows機器是否正在運行IPV4或IPV6?
- 8. 如何檢測媒體播放器是否正在運行
- 9. C#:如何檢測屏幕閱讀器是否正在運行?
- 10. 檢測是否Qt是在運行時
- 11. 如何在OSGi Felix容器中運行ActiveMQ?
- 12. 如何在運行時檢測.NET中是否存在類?
- 13. 如何測試jar是否是OSGi jar?
- 14. 如何檢測我是否在AWS Lambda環境中運行?
- 15. 如何檢測程序是否在PAR檔案中運行?
- 16. 如何檢測Javascript是否在Opera的跨域IFrame中運行?
- 17. 如何檢測我是否在單一服務中運行?
- 18. 如何檢測程序是否在valgrind中運行?
- 19. 如何檢測代碼是否從Rails服務器運行?
- 20. 檢測MediaBrowserServiceCompat是否正在運行
- 21. 檢測是否在launchd下運行
- 22. 檢測CountdownTimer是否正在運行
- 23. 檢測jQuery是否正在運行
- 24. 如何檢查比賽檢測器是否在運行時啓用?
- 25. 如何檢測我的應用程序是否在兼容模式下運行?
- 26. 如何檢測腳本是否在瀏覽器或Node.js中運行?
- 27. 如何檢測Flash模塊是否在谷歌瀏覽器中運行?
- 28. 如何檢測網頁是否在iPhone的嵌入式瀏覽器中運行?
- 29. 如何檢測機器是否在線?
- 30. OSGI:如何運行
這與「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