2010-11-11 54 views
5

Eclipse軟件包(例如,在激活碼中)如何在運行時找到相關的Bundle實例?我想找到Eclipse選擇的捆綁來滿足依賴性需求,我不想自己解釋清單。在運行時在Eclipse中查找相關軟件包

一個例子:我想在當前bundle依賴的所有bundle中查找名爲「marker.txt」的所有資源。也是傳遞依賴。爲了做到這一點,我需要能夠找到所有這些捆綁開始。

回答

4

有沒有簡單的方法來確定依賴。 最好的方法是通過PackageAdmin接口。請參閱OSGi規範中的PackageAdmin和getImportingBundles:http://www.osgi.org/javadoc/r4v42/org/osgi/service/packageadmin/ExportedPackage.html#getImportingBundles()

您需要確定所有已安裝的軟件包,哪一個導出您的軟件包導入的一個或多個軟件包。最簡單的方法是打電話PackageAdmin.getExportedPackages(Bundle bundle) with bundles = null。這將返回所有導出包的數組。然後您需要迭代此數組並調用ExportPackage.getImportingBundles()

0

您可以打開OSGi控制檯,併發出以下命令:

ss 

要束的名單,其中包括數字ID

bundle <id> 

以獲取更多信息,包括依賴性。

你也應該嘗試

help 

,以獲得更多的命令

+1

他想以編程方式做到這一點。 – 2010-11-11 18:20:19

1

請參閱我的回答this question。 4.3將會有一個新的捆綁佈線API來允許這樣的事情。

相關問題