我有一個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