我開發了一個eclipse插件,它引用外部安裝目錄中存在的外部jar。正確如何確保在從eclipse插件調用時加載外部罐子類?
Bundle-ClassPath: external:C:\mylib.jar
我的類負載 - 和插件能夠檢測到一類MyClass
目前在這個外部lib
: 所以我已經加入到我的bundle的classpath中的條目如下。
但是,方法a()
- 我打電話在類MyClass
失敗。
方法a()如下:
public void a()
{
URL url = this.class.getClassLoader().getResource("META-INF/startup-jar ");
...
}
所以其被返回的URL是Eclipse插件目錄C:\eclipse3.4\test
而不是外部罐的物理位置,其是C:\mylib.jar
這導致方法a()
失敗。現在,我的問題是 -
由於我沒有外部JAR複製到我的插件目錄(這是隻出現在類路徑的插件)
我怎麼能保證類加載器得到我的外部的URL路徑jar而不是我的插件目錄?
注意:我無法更改外部jar中的類加載機制,因爲它是第三方依賴項,我無法控制代碼。所以請建議一個能夠幫助我正確加載外部jar類的解決方案,這樣我就可以得到正確的URL。
非常感謝您的幫助 - 提前
要解釋一點對這個問題,我面對:: 我的外部JAR存在我的服務器安裝的安裝目錄中。
當我的外部罐子類調用網址URL = this.class.getClassLoader()的getResource( 「啓動-JAR」)
返回相對URL到Eclipse包路徑 - 喜歡的東西C:\ eclipse3.4 ...
此URL用於獲取啓動目錄(服務器的安裝目錄)。
所以它應該返回一個相對於服務器安裝目錄的路徑,而是返回一個相對於eclipse安裝目錄的路徑。
因此,我無法將服務器上的任何API作爲它嘗試使用的服務器安裝目錄調用不正確。
所以我想知道什麼是我可以處理這個問題的最好方法,以便這個方法調用返回服務器安裝目錄而不是eclipse的bundle路徑。
對不起,我的'class.getResource'答案。 – VonC 2010-03-02 09:49:31