首先 HotSwapAgent 依赖 DCEVM。如果你用的 jdk8,首先需要确认的是你的 jdk8 的版本要低于 jdk8u181。如果高于这个版本,则需要重新下载 jdk8u181并安装,下载链接。
第二步,下载 DCEVM ,下载链接
第三步,以管理员身份打开下载好的 jar 包
# 以 jar 包方式运行安装包
java -jar "E:\迅雷下载\DCEVM-8u181-installer.jar"
安装 dcevm 到 jdk8u181 上面。
打开 Idea,打开设置,安装 HotswapAgent 插件:
安装完成后需要在设置中进行一些配置:
首先需要对项目的jdk版本做一下调整,快捷键Ctrl+Alt+Shift+S打开项目配置,调整Project SDK 一栏为 jdk8u181
然后打开系统配置,在 Settings->Build,Execution,Deployment->Debugger->Hotswap选项卡中,是否在编译完成后重新加载类,设置为 Always。
在 Tools->HotSwapAgent 选项卡中勾选 Enable HotSwapAgent in all configuration。
上述配置完成后,此时运行你的SpringBoot 应用,就会发现日志中多出了 HotSwapAgent 的日志。你可以在尝试在不重新启动代码的情况下修改代码,然后 Ctrl+F9进行构建,HotSwapAgent 会自动将修改后的代码部署到正在运行的应用中。
配置失效的场景
在一些情况下,当配置 HotSwapAgent 时,会发现提示你没有安装 DCEVM 并提示你安装。如果你已经安装了 DCEVM ,则有可能是在 Project Structure 中没有修改 Project SDK 导致提示错误,此时你只需要按照之前的教程修改 Project SDK 为已经安装了 DCEVM 插件的 JDK 即可。
同样的 HotSwapAgent-IntelliJ-IDEA-plugin不支持 JDK11,亦或者 集成了 HotSwapAgent 的 Trava OpenJDK,所以要注意 jdk 版本为 8u181。
参考资料
DCEVM (light) for Java 8u181 build 2
HotSwapAgent-IntelliJ-IDEA-plugin
DCEVM