我們在開發javaweb工程時,經常在修改了java類時需要重新啟動Tomcat才能使java類生效,如果修改的很頻繁,則需要不停的重啟,很是影響工作效率,有沒有一種方法可以解決這個問題?
熟悉classload的小夥伴們都知道,只要在修改了java時可以熱加載就可以解決這個問題。
Tomcat對於熱部署有部分支持:僅僅修改方法體的內容可以不用重啟Tomcat,如果新增了類或方法時則必須重啟。需要修改server.xml的reloadable="fasle",reloadable的參數值默認為true。
但是新增類、方法,修改方法名稱在開發時不可避免,Tomcat的reloadable支持仍然十分有限,有沒有一款軟件可以完美解決這個問題?答案是有的。
JRebel是一款JAVA虛擬機插件,它使得JAVA程序員能在不進行重部署的情況下,即時看到代碼的改變對一個應用程序帶來的影響。就是我們常說的熱部署。
JRebel有兩種使用場景:
開發時
運行時
開發時,Eclipse使用JRebel熱部署
1.安裝JRebel插件,在Eclipse Marketplace中搜索JRebel並安裝
2.添加license
JRebel是一款收費軟件,需要到官方上申請license(如果需要免費版的,私信我“JRebel免費版”),網址:https://zeroturnaround.com/software/jrebel/download/
打開Help->JRebel->Configuration,如下界面:
複製license
3.配置你的項目使用JRebel,如下測試用的項目是testweb
至此已經配置完成,在testweb工程中添加、修改任意的java類,都可以被熱部署,再也不用頻繁的重啟了。
運行時,Tomcat集成JRebel
開發時通過eclipse的JRebel插件來實現工程的熱部署,如果在測試環境,甚至是生產環境如需使用JRebel來實現熱部署,也很簡單。
1.複製javarebel.jar、jrebel.jar、JavaRebel.log到任意目錄
2.配置catalina.bat或catalina.sh
set JAVA_OPTS=-noverify -javaagent:javarebel.jar的路徑
# 示例
set JAVA_OPTS=-noverify -javaagent:C:\WorkSpace\apache-tomcat-7.0.81\javarebel.jar
啟動Tomcat時看到如下界面說明配置成功
現在官網上只能下載到eclipse插件版的免費試用,如果需要可以直接對tomcat支持的jrebel,請私信我“JRebel免費版”。