DCEVM+HotSwapAgent实现java类热加载
1. 安装DCEVM
DCEVM主页: https://dcevm.github.io/
写此文时,支持的JDK 1.8的版本是:Java 8 update 112, build 9
因为这个版本已经不是最新版jdk,所以需要去Oracle Java Archive这个页面下载,你需要有oracle的账号。
下载完后安装好。
然后下载DCEVM的patch,是个jar包,从DCEVM主页上下载,我下文件名为:DCEVM-light-8u112-installer.jar
运行java -version
确认您的jdk是8u112
.
安装patch
$ sudo java -jar DCEVM-light-8u112-installer.jar
- 选择安装目录
这个目录就是Java 8 update 112
的安装目录,在Mac下,请运行/usr/libexec/java_home
这个命令找到java_home.然后点击Add installation directory...
这个按钮,选择java home下的jre目录。 - 点击
Install DCEVM as altjvm
这个按钮安装。
2. IntelliJ IDEA 配置
打IDEA的配置,选择左侧的plugin
,搜索HotSwapAgent
,然后安装它。
重启IDEA后,此plugin就生效了。
如果你的系统上安装了多个JDK,请确认你的项目用的是Java 8 update 112
下面配置HotSwapAgent plugin.
这样就行了。
打开你的项目,以debug的方式运行它(一定要是debug模式)。
IDEA有个问题,就是在debug模式下不是自动编译的。所以每次修改完代码,要按’cmd + shift + F9’来编译,然后class才能reload,这个挺烦人的,你会发现reload的速度并不是很快,不过总比每次点stop & run要快了不少。