解決JRebel部署啟動(dòng)失敗的問題
使用Tomcat能夠成功部署,但是當(dāng)嘗試使用JRebel進(jìn)行部署時(shí)卻遇到問題,很可能是因?yàn)槲丛O(shè)置PermSize參數(shù)。JRebel在部署時(shí)消耗的PermSize要比JRebel高許多,如果未專門設(shè)置可
使用Tomcat能夠成功部署,但是當(dāng)嘗試使用JRebel進(jìn)行部署時(shí)卻遇到問題,很可能是因?yàn)槲丛O(shè)置PermSize參數(shù)。JRebel在部署時(shí)消耗的PermSize要比JRebel高許多,如果未專門設(shè)置可能導(dǎo)致內(nèi)存溢出而啟動(dòng)失敗。
安裝JRebel插件并設(shè)置PermSize參數(shù)
以在IntelliJ IDEA中使用JRebel插件為例,其他IDE中的JRebel插件或獨(dú)立使用JRebel的解決方法原理相同。安裝好JRebel插件后,會(huì)出現(xiàn)兩個(gè)替代Tomcat啟動(dòng)按鈕。若控制臺(tái)打印了一些日志但啟動(dòng)的項(xiàng)目頁面無法打開,可能意味著啟動(dòng)不成功。查看Tomcat服務(wù)器打印的日志,如果提示永久代內(nèi)存溢出,則需要調(diào)整PermSize的值。
調(diào)整Tomcat的PermSize數(shù)值
在Tomcat的設(shè)置中提高PermSize的值,例如將-XX:MaxPermSize1024m中的1024替換為其他數(shù)值,擴(kuò)大PermSize即可。這個(gè)數(shù)值可以根據(jù)實(shí)際情況進(jìn)行調(diào)整,但務(wù)必確保提高PermSize值。若你在其他地方使用JRebel,也需在相應(yīng)的設(shè)置JVM啟動(dòng)參數(shù)的地方增加PermSize。
重新啟動(dòng)項(xiàng)目并檢查內(nèi)存占用
完成上述設(shè)置后,再次嘗試啟動(dòng)項(xiàng)目。使用JRebel啟動(dòng)的項(xiàng)目占用的內(nèi)存應(yīng)該比僅使用Tomcat啟動(dòng)時(shí)更大。通過擴(kuò)大PermSize參數(shù),項(xiàng)目應(yīng)能成功啟動(dòng),避免因內(nèi)存溢出而導(dǎo)致的啟動(dòng)失敗問題。