簡體   English   中英

動態設置類路徑

[英]Setting up classpath dynamically

我需要開發一個可以支持任何版本服務器的客戶端。 每次使用客戶端連接新服務器時,相應的服務器信息就會存儲在客戶端上,並且需要將類pat h設置為當前服務器特定的類路徑位置。 根據服務器版本,需要設置類路徑。 我面臨着動態設置此類路徑的問題。 我總是會收到ClassNotFound異常。 您能否建議我如何實現這一目標。

無法在運行時動態設置類路徑。 您可以在這里做兩件事:熟悉OSGi或編寫自己的類加載器。 對於此特定示例,編寫自己的類加載器會更容易。 您在服務器特定的類路徑中保留什么? 類,資源,什么? 一些細節可能會有所幫助。

我不知道您到底想實現什么,但是假設您的客戶端計算機中具有所有需要的庫,而您只是想根據從服務器接收到的特定參數在運行時更改類路徑,那么我會去ClassWorlds

我會嘗試使用ClassWorlds的配置文件定義一組類領域,而客戶端的主類將使用main方法中的ClassWorld參數實現。 然后,從服務器接收的參數將是這些領域中任何一個的名稱。 因此,僅在讀取了realm參數之后,您只需要將當前線程的類加載器切換到ClassWorlds為特定領域創建的類加載器即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM