..我有一個應用程序(一個.war),它有一個插件系統,其中每個插件插件都是.jar及其jar文件.jar依賴。 而在webapp中,通過管理Web界面,插件通過使用ClassLoader加載.jar及其依賴關係。 但問題是,例如,2個插件A和B可能有一個或多個通用依賴項(commons-io.jar,commons-collection.jar,...)...所以通常我不應該加載更多一旦.jar已經被另一個插件加載,或者已經存在於webapp本身 - > WEB-INF/lib/ 因此,我想知道是否有一種方法可以不加載另一個.jar文件已經通過webapp或其他插件加載 如果可能,我該怎麼做!如何驗證.jar或類已被ClassLoader加載到Java
其實,無論有什麼解決方案,我只是想避免類加載器問題。
注:各插件是具有到它下面的架構
插件名稱/
- code/
- A.class
- B.class
- ...
- lib/
- commons-io.jar
- log4j.jar
- ....
- description.xml
- version.txt
在目錄中的每個代碼.class文件/由類加載器加載的.zip文件,插件的lib /目錄中的每個.jar也會被加載。
但通常情況下,我不應該再加載存在於的.jar類「公地io.jar」如果以往任何時候都已經存在......
我希望我已經足夠清楚,謝謝提前注意和幫助。
是否有可能兩個插件需要不同版本的相同依賴項?或者這不是一個問題? – kylewm
是的,有可能2個插件具有不同版本的相同依賴關係 – paissad