-3
我的目標是編寫自定義類加載器,這是從一些自定義存儲庫加載類所需的,以實現熱部署功能並允許卸載類。如果您有類似任務的經驗,請分享您的知識。如何編寫自定義的類加載器來從jar中加載類?
我的目標是編寫自定義類加載器,這是從一些自定義存儲庫加載類所需的,以實現熱部署功能並允許卸載類。如果您有類似任務的經驗,請分享您的知識。如何編寫自定義的類加載器來從jar中加載類?
無需編寫自定義ClassLoader
你的情況,URLClassLoader
應該夠了,你只需提供URL
作爲參數(對應的類或jar文件,包括文件夾),以它的構造和最終的父類的數組裝載機(Thread.currentThread().getContextClassLoader()
可能是一個很好的候選人)。
注:當你打算做熱部署,確保您撥打close()
您URLClassLoader
實例來正確地釋放資源。
這裏是你將如何再使用反射動態地創建Class
的一個實例:
Class<?> myClass = Class.forName(myClassName, true, myClassLoader);
Object myObject = myClass.newInstance();
我需要加載類的過程中,在那裏我可以控制這個過程下靈活控制,URLClassLoader的是不適合這個目標。我的答案中的鏈接解決了我的問題。 – pacman
我已經創建了一個基於URLCL的項目,需求非常相似,它足夠了https://github.com/essobedo/application-manager。在你的評論/問題中不清楚你的要求中的特定要求是什麼使得你也不能使用它 –