java hotswap_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要快了不少。
java hotswap_DCEVM+HotSwapAgent实现java类热加载相关推荐
- java 类加载生命周期_Java类的加载与生命周期
一.概要: 类的生命周期从类的 加载.连接.初始化 开始,到类的 卸载结束: 二.几个阶段: 加载:查找并加载类的二进制数据.(把类的.class文件的二进制数据读入内存,存放在运行时数据区的方法区: ...
- java的连接 初始化_java类从加载、连接到初始化过程详解
Java代码在编译后会转化成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化成汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. 类加载 ...
- Java常见面试题:类的加载过程
程序员看似光鲜的就业前景面前,逃不过的是层层的面试,想要进前沿的大公司没有个五六七八面,是不可能滴!而找工作的首个关卡就是笔试,想要获得高薪工作的小伙伴,先刷一波面试题吧! 今天给大家分享的面试题是- ...
- 原来热加载如此简单,手动写一个 Java 热加载吧
1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...
- java热加载_java--热加载
1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...
- java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述
Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...
- java 类的加载、连接和初始化
JVM和类 调用Java命令运行Java程序时,该命令将会启动一条Java虚拟机进程,不管该Java程序启动了多少条线程,创建了多少个变量,它们都处于该Java虚拟机进程里,共享该JVM进程的内存区. ...
- java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载
不重启Tomcat有两种方式:热部署.热加载 热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式 有可能会造成sessin丢失等环境.tomcat 6确实可以热 ...
- 透过现象看本质:Java类动态加载和热替换
摘要:本文主要介绍类加载器.自定义类加载器及类的加载和卸载等内容,并举例介绍了Java类的热替换. 最近,遇到了两个和Java类的加载和卸载相关的问题: 1) 是一道关于Java的判断题:一个类被首次 ...
最新文章
- document.getElementById vs jQuery $()
- Android 解锁屏启动过程
- TensorRT学习笔记6 - IPlugin
- 树莓派AI视觉云台——1.树莓派Pi3简介
- 查询分析器在哪里_你应该知道的3种Node.js分析器类型
- redmine 和 gitolite 的整合
- 各种手机处理器排行榜_11月新机性能排行榜:荣耀V30第四,vivo S5上榜
- 把kafka数据从hbase迁移到hdfs,并按天加载到hive表(hbase与hadoop为不同集群)
- ifconfig源码分析之与内核交互数据
- keil安装stm32系列
- 常用的机械3D设计软件大全
- 深入浅出计算机组成原理26-Superscalar和VLIW:如何让CPU的吞吐率超过1?
- 企业知识、经验如何传承?知识管理系统告诉你
- 今日学习在线编程题:可怜的小码哥
- 中国证券业协会会员登记注册程序
- DL之RefineNet:RefineNet和Light-Weight RefineNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- 学习u3d的几个工具和文档
- greenDao框架浅入深出
- linux软硬件系统观察,Linux系统在信息社会的发展
- 离散数学—命题逻辑知识点整理
热门文章
- 为SSIS编写自定义数据流组件(DataFlow Component)之进阶篇:自定义编辑器
- VUEJS-checkbox全选全不选
- 动态添加内容到百度搜索框里
- mybatis和hibernate的一级、二级缓存
- 前端那些年--npm
- 控制谷歌浏览器的最大化最小化
- linux 跨物理 集群,linux学习之使用keepalived结合lvs搭建高可用负载均衡集群
- 左神算法基础班4_4_3在二叉树中找到一个节点的后继节点
- 【leetcode】443. String Compression
- 《The Corporate Startup》作者访谈