我正在嘗試使用自定義邏輯加載單個類(即,我想用自定義版本替換我的庫中類的實現)。在Java中修改默認類加載器的行爲
我想創建自己的自定義類加載器,它代理默認的類加載器。 但是,看起來我的默認類加載器:sun.misc.Launcher.AppClassLoader
不可見 - 這意味着我無法擴展它。
用於創建單個類加載器的任何解決方案都非常值得讚賞,該解決方案足夠強大以複製現有類加載器的行爲,同時在一個特定類中進行子類化。
請注意,我用
Thread current = Thread.currentThread();
current.setContextClassLoader(newOne);
然而,這似乎不工作嘗試,即在線程加載的類不總是觸發我定製的ClassLoader。
背景
我希望「新LibraryClass()」的調用來使用這個類的自定義實現 - 在「新...」調用是在一個jar文件這不是我的控制之下。
怎麼樣使用'URLClassLoader'?您可以在其餘的前面添加修改過的'LibraryClass'版本,以便類加載器首先找到它。或者也許重寫'findClass'。 –