2013-11-26 45 views
3

在Tomcat/lib文件夾下放置一個jar文件。和tomcat加載jar文件。tomcat如何加載jar文件?

我的問題是:

如何tomcat的加載一個jar文件?例如打開包裝,那麼指數它,尋找類和使用反射..我可以猜加載它..

是否有任何的java庫從中我可以做一個類似的應用程序?

我的目的:

我有一個Java接口,這將應該擴展應用程序的能力。有一個默認的實現。但是,將來它會被更改,並且可能有多個副本/版本。
這個想法是提供實現並將其打包成一個jar文件並將其放到一個文件夾中。容器將查找實現並列出實現。

最終用戶誰使用該應用程序可以選擇默認或任何版本...

例:默認主題..

現在,我有一個接口

public interface Theme 
{ 
    public void setName(); 
    public void setColor(); 
    public void setBGColor(); 
    public void getName(); 
    public void getColor(); 
    public void getBGColor(); 
} 

管理員創建兩個主題即BlueWITHGreenBGTheme和GreenWITHBlackBGTheme。編譯並打包並放入文件夾中。

最終用戶現在將看到三種不同的主題:默認主題,BlueWITHGreenBG主題和GreenWITHBlackBG主題。他/她選擇任何主題和他/她的應用程序顏色和背景顏色變化。

以上只是一個例子,而不是真實的情景。

+0

這是一個相當廣泛的問題,它可能會像這樣封閉。你可能想做一些背景閱讀,一個好的起點是Java服務提供者接口(SPI),它提供了我認爲你在尋找的東西。 –

+0

如果要加載一個jar文件,是不是在類路徑中的類,你可以使用jar文件類來獲取類名,然後使用定製的ClassLoader來加載類,所以分析儀可以檢查它們。 – NormR

回答

1

Tomcat使用自定義ClassLoader

你可以使自己的太多,但URLClassLoader滿足大多數開發人員的必要條件。

不要以爲URL是關於互聯網,他們可能指向本地jar文件了。