分享文件
先分享两个文件
jdk1.8.181 https://share.weiyun.com/Fqhypnal
DCEVM-8u181-installer.jar https://share.weiyun.com/iRX2Y7Ln
这两个东西的版本要匹配, 我在oracle官网没找到早期版本jdk
安装步骤
- 环境是win10, idea, linux mac 都可以, idea不限版本, 但也不能太老
- 在你的pc上安装jdk1.8.0_181
- 运行java -jar DCEVM-8u181-installer.jar
- 选择上边的jdk目录,点击

- 在idea中安装HotSwapAgent插件

- 配置HotSwapAgent

Diabled Plugin可能是和某些插件冲突时用到, 没细看示例和友情提示
新建项目, 项目jdk选择上边hack过的jdk, 以debug模式启动 ```bash import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;
/*
- 配置了decVM后
- 热加载 生效的前提,
- 多线程环境
- 启动类之外的修改才能成功热替换
- 你可以不信邪, 亲手多种尝试
*/ public class Hot {
/public void fn() { System.out.println(“Hot.fn”); }/
public static void main(String[] args) {
ExecutorService pool = Executors.newWorkStealingPool(10); User user = new User(); Hot hot = new Hot();
while (true) { //hot.fn(); pool.submit(new Runnable() {
@Overridepublic void run() {System.out.println(user.name);user.fn();user.age = user.age + 1;System.out.println(user.age);}
});
try {
Thread.sleep(1000);} catch (InterruptedException e) {
e.printStackTrace();} } } }
bash
public class User { String name = “帅叔叔”; int age; private static String gender = “男”;
public static void fn() { System.out.println(“fn”); System.out.println(gender); } } ```
