我希望能夠加載不同版本的JAR文件,代表客戶端API,這取決於我正在與之交談的服務器的版本。不幸的是,每個版本的服務器都需要不同的客戶端API。有沒有辦法創建一個基於指定的CLASSPATH查找類文件的ClassLoader?換句話說,我想告訴ClassLoader搜索類文件的位置序列。如何爲類加載器加載任意選擇的JAR?
1
A
回答
0
如果我理解正確,您需要一個自定義ClassLoader,它根據一些配置在不同位置查找。例如,在一種情況下,它可能在/ foo中查看,另一個在/ bar中,而在另一箇中它可能先看/ foo,然後看/ bar。如果這是正確的,那實際上並不難。查看URLClassLoader(http://docs.oracle.com/javase/7/docs/api/java/net/URLClassLoader.html)。您可以指定ClassLoader指定哪些URL(可以是本地目錄或文件),以及「在首次搜索指定的父類加載器後,將按照爲類和資源指定的順序搜索URL」。
關鍵是父類ClassLoader不知道你不想搜索的路徑,因此你必須手動執行一些類路徑配置,而不是讓JVM來處理它。
相關問題
- 1. 如何從Jar加載類?
- 2. 如何編寫自定義的類加載器來從jar中加載類?
- 3. 如何加載選擇?
- 4. 實現選擇性類加載器
- 5. 如何使tomcat 8使用與戰爭相同的類加載器加載jar?
- 6. 如何從jar或目錄加載類
- 7. 如何防止從jar加載類
- 8. 如何從瀏覽器加載JAR文件加載庫?
- 9. 跨類加載器的類加載
- 10. 如何儀器類加載自定義類加載器?
- 11. 類加載器可以通過任何
- 12. 如何從類加載器中刪除加載的類?
- 13. Tomcat jar加載
- 14. 如何選擇頁面加載選項
- 15. 如何爲XMLDecoder設置類加載器?
- 16. jar-in-jar類加載問題
- 17. 作爲InputStream從JAR加載?
- 18. Java類加載器:爲什麼先搜索父類加載器?
- 19. 如何加載CakePHP中的選擇框
- 20. 如何防止jar-in-jar-loader加載特定的類?
- 21. 加載選項從服務器選擇
- 22. Symfony的類加載器不會加載
- 23. JQTOUCH - 任何時候發生加載,添加加載類?
- 24. 如何在JVM中使用類加載器加載類兩次?
- 25. 動態加載jar並在其中執行任意代碼
- 26. 如何在不加載類的情況下從jar中加載方法?
- 27. jQuery UI日期選擇器圖像加載之前加載
- 28. 加載站點後激活選擇器加載
- 29. 類加載器如何加載靜態變量的說明
- 30. 卸載類加載器