最近開發(fā)一個東西,借鑒一下Tomcat的熱部署,但首先得避免Class不能卸載,找到幾篇文章:
?
YouKit
?
?
To unload a class you have to create a custom classloader and load the class using it. Tomcat does it and so does JRun. You can look in Tomcat code for an example.
After you are done with the class you need to release all references to the class as well as to the class loader by reassigning the variables or setting them to null.
Then either wait for System.gc() to unload the class or you call it directly in a loop till no more bytes can be freed. however normally calling it twice does the trick.
Note: You cannot unload a single class. You have to unload the classloader along with it. So obviously System classloader is not the suitable for this task.
Note 2: This is how JSP pages are reloaded dynamically everytime you change the code. And yes that is why first time takes much longer to load then subsequent times.
?
??
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
