在classpath中查找一個資源後,我得到了這個網址:OSGi/Equinox:如何將資源URI轉換爲包名稱?
bundleresource://23.fwk1186515174/com/google/inject/Injector.class
我怎樣才能找出其中包提供的資源?
[編輯]我想調試一個問題,我有類路徑上重複的類。下面是我使用的代碼:這給了我幾個網址,com.google.inject.Injector
private void debugClassPath() {
String resource = "com/google/inject/Injector.class";
try {
Enumeration<URL> urls = getClass().getClassLoader().getResources(resource);
while(urls.hasMoreElements()) {
System.out.println(urls.nextElement());
}
System.out.println("---");
urls = XtextRunner.class.getClassLoader().getResources(resource);
while(urls.hasMoreElements()) {
System.out.println(urls.nextElement());
}
} catch(IOException e) {
e.printStackTrace();
}
}
,我想弄清楚哪些捆綁它們添加到classpath中。
你有沒有解釋什麼是「拆分包裝」的文件,以及如何「修復」它們?背景:我需要足夠的信息/對問題的理解來告訴涉及如何解決問題的項目。 – 2012-08-13 07:39:52
開始使用bnd(tools)... bnd驗證程序,並在您拆分軟件包時向您大叫。拆分包是同一個包中的多個提供者。在OSGi中,只有在使用Require-Bundle進行重新導出時纔會發生這種情況。停止這樣做,你的問題就結束了。 拆分包在模塊層的規範中討論。 – 2012-08-13 07:54:09
我沒有這樣做;它必須在另外兩個項目中,所以我需要說服這兩個項目來解決它。 – 2012-08-13 07:56:06