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要快了不少。

java hotswap_DCEVM+HotSwapAgent实现java类热加载相关推荐

  1. java 类加载生命周期_Java类的加载与生命周期

    一.概要: 类的生命周期从类的 加载.连接.初始化 开始,到类的 卸载结束: 二.几个阶段: 加载:查找并加载类的二进制数据.(把类的.class文件的二进制数据读入内存,存放在运行时数据区的方法区: ...

  2. java的连接 初始化_java类从加载、连接到初始化过程详解

    Java代码在编译后会转化成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化成汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. 类加载 ...

  3. Java常见面试题:类的加载过程

    程序员看似光鲜的就业前景面前,逃不过的是层层的面试,想要进前沿的大公司没有个五六七八面,是不可能滴!而找工作的首个关卡就是笔试,想要获得高薪工作的小伙伴,先刷一波面试题吧! 今天给大家分享的面试题是- ...

  4. 原来热加载如此简单,手动写一个 Java 热加载吧

    1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...

  5. java热加载_java--热加载

    1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...

  6. java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  7. java 类的加载、连接和初始化

    JVM和类 调用Java命令运行Java程序时,该命令将会启动一条Java虚拟机进程,不管该Java程序启动了多少条线程,创建了多少个变量,它们都处于该Java虚拟机进程里,共享该JVM进程的内存区. ...

  8. java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载

    不重启Tomcat有两种方式:热部署.热加载 热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式 有可能会造成sessin丢失等环境.tomcat 6确实可以热 ...

  9. 透过现象看本质:Java类动态加载和热替换

    摘要:本文主要介绍类加载器.自定义类加载器及类的加载和卸载等内容,并举例介绍了Java类的热替换. 最近,遇到了两个和Java类的加载和卸载相关的问题: 1) 是一道关于Java的判断题:一个类被首次 ...

最新文章

  1. document.getElementById vs jQuery $()
  2. Android 解锁屏启动过程
  3. TensorRT学习笔记6 - IPlugin
  4. 树莓派AI视觉云台——1.树莓派Pi3简介
  5. 查询分析器在哪里_你应该知道的3种Node.js分析器类型
  6. redmine 和 gitolite 的整合
  7. 各种手机处理器排行榜_11月新机性能排行榜:荣耀V30第四,vivo S5上榜
  8. 把kafka数据从hbase迁移到hdfs,并按天加载到hive表(hbase与hadoop为不同集群)
  9. ifconfig源码分析之与内核交互数据
  10. keil安装stm32系列
  11. 常用的机械3D设计软件大全
  12. 深入浅出计算机组成原理26-Superscalar和VLIW:如何让CPU的吞吐率超过1?
  13. 企业知识、经验如何传承?知识管理系统告诉你
  14. 今日学习在线编程题:可怜的小码哥
  15. 中国证券业协会会员登记注册程序
  16. DL之RefineNet:RefineNet和Light-Weight RefineNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  17. 学习u3d的几个工具和文档
  18. greenDao框架浅入深出
  19. linux软硬件系统观察,Linux系统在信息社会的发展
  20. 离散数学—命题逻辑知识点整理

热门文章

  1. 为SSIS编写自定义数据流组件(DataFlow Component)之进阶篇:自定义编辑器
  2. VUEJS-checkbox全选全不选
  3. 动态添加内容到百度搜索框里
  4. mybatis和hibernate的一级、二级缓存
  5. 前端那些年--npm
  6. 控制谷歌浏览器的最大化最小化
  7. linux 跨物理 集群,linux学习之使用keepalived结合lvs搭建高可用负载均衡集群
  8. 左神算法基础班4_4_3在二叉树中找到一个节点的后继节点
  9. 【leetcode】443. String Compression
  10. 《The Corporate Startup》作者访谈