分享文件
先分享两个文件
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() {
@Override
public 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();
} } } }
public class User { String name = “帅叔叔”; int age; private static String gender = “男”;
public static void fn() { System.out.println(“fn”); System.out.println(gender); } } ```