2011-07-07 54 views
4

有什麼辦法可以在運行時更新系統類加載器嗎?在我動態加載了一個jar文件之後,有什麼可以將從這個jar加載的類/包添加到我的系統類加載器中嗎?Java ClassLoader - 將動態加載的罐子添加到系統類加載器

我試圖做到這一點的原因是,雖然我通過在自己的代碼中傳遞新創建的ClassLoader獲得了一些成功,但我遇到了第三方庫(apache-WSIF)這似乎並沒有在ClassLoader中傳遞。

+0

可能的重複項:http://stackoverflow.com/questions/60764/how-should-i-load-jars-dynamically-at-runtime和http://stackoverflow.com/questions/194698/how-to-加載一個jar文件在運行時 – paradigmatic

+0

我不認爲你可以添加任何東西到系統類加載器在運行時。原因在對paradicmatic相關問題的答案中進行了解釋。 –

回答

6

我已經能夠做到什麼,我嘗試使用以下的事情:。

Thread.currentThread()setContextClassLoader(myClassLoader);

正如在這裏最多的回答討論:How do you change the CLASSPATH within Java?

基本上,調用到WSIF庫之前,我需要做的就是確保我已經把我的定製ClassLoader作爲當前線程上contextClassLoader。