分享文件

先分享两个文件
jdk1.8.181 https://share.weiyun.com/Fqhypnal
DCEVM-8u181-installer.jar https://share.weiyun.com/iRX2Y7Ln
这两个东西的版本要匹配, 我在oracle官网没找到早期版本jdk

安装步骤

  1. 环境是win10, idea, linux mac 都可以, idea不限版本, 但也不能太老
  2. 在你的pc上安装jdk1.8.0_181
  3. 运行java -jar DCEVM-8u181-installer.jar
  4. 选择上边的jdk目录,点击
    image.png
  5. 在idea中安装HotSwapAgent插件
    image.png
  6. 配置HotSwapAgent
    image.png
    Diabled Plugin可能是和某些插件冲突时用到, 没细看

    示例和友情提示

    新建项目, 项目jdk选择上边hack过的jdk, 以debug模式启动 ```bash import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;

/*

  • 配置了decVM后
  • 热加载 生效的前提,
    1. 多线程环境
    1. 启动类之外的修改才能成功热替换
  • 你可以不信邪, 亲手多种尝试
  • */ 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() {

    1. @Override
    2. public void run() {
    3. System.out.println(user.name);
    4. user.fn();
    5. user.age = user.age + 1;
    6. System.out.println(user.age);
    7. }

    });

    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); } } ```