【Galois工具开发之路】给你的JVM安装一个插件~

告别疯狂重启!用DCEVM在IDEA里实现SpringBoot类热替换的避坑指南(2024实测版) 本文提供了一份2024年实测的详细指南,帮助开发者在IntelliJ IDEA中配置DCEVM和HotSwapAgent,实现SpringBoot应用的热加载(类热替换),从而告别频繁重启,显著提升开发调试效率。文章深入解析了核心原理,并重点解决了环境配置、常见报错等实战中的疑难问题。 阅读详情

什么是DCEVM

Dcevm(DynamicCode Evolution Virtual Machine)是Java Hostspot的一个扩展插件,属于开源性工具,非JDK官方提供,它允许你在运行环境下修改加载的类文件。当前虚拟机只允许修改方法体(Method,Body),而Decvm可以增加、删除类属性、方法,甚至改变一个类的父类。

Galois是一个开源的SpringBoot项目热部署工具,提供对SpringBoot,Mybatis等三方框架的热部署支持。使用Galois需要您的JDK安装DCEVM扩展,顾名思义,可以实现增删改方法甚至是属性的热部署实现。

下载DCEVM

官方Github地址:https://github.com/dcevm/dcevm
官方Release下载地址:https://github.com/dcevm/dcevm/releases
在这里插入图片描述

以上是DCEVM的官方仓库地址,然而却不一定适配你的JDK版本,如果有JDK8较新的版本或以上,可以到以下地址下载

楼主当前使用 JDK 1.8.0_211 版本,原本是需要下载以下DCEVM版本。但是吧,目前Window系统的包需要自己下载源码编译,流程较为复杂,因此只能反向升级,我自己委屈求全,把JDK降到 1.8.0-181版本,这样就能用上了,DCEVM严格限制JDK版本的。
推荐到Oracle官网下载JDK https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
在这里插入图片描述

https://github.com/TravaOpenJDK/trava-jdk-8-dcevm/releases

在这里插入图片描述

安装DCEVM

  • 下载jar包,通过java的jar命令启动,如下。切记,执行该命令的CMD或PowerShell窗口,需要使用管理员权限打开
java -jar .\DCEVM-8u181-installer-build2.jar
  • 在弹出来的界面中,选择你的JDK,进行修补
    • 修补过程中,所有java进程实例都要关闭
    • 达到效果如下【已替换DCEVM,且能正常显示DCEVM版本号,如果显示could not get decversion 则表示安装失败】
  • 验证安装成功,可以在控制台窗口执行 java -version,这时候就会输出带有** Dynamic Code Evolution**字样的java版本说明了,如下图所示
    在这里插入图片描述

问题记录

  • 版本说明
    • 官方仓库最高支持JDK 1.8.0-181,更高版本需要到文中另一个github仓库找jar包,linux和macos有直接编译的,window则需要自己编译源码,目前【2023-02-20】是这样
    • DCEVM严格要求版本一一对应,基本没有高版本兼容低版本的说法,如果是JDK8-181,则就要下载181的jar包

Galois热部署工具

IDEA 使用 DCEVM + HotSwapAgent实现StringBoot热加载 1.安装DCEVM 需要去官网下载对应的jdk版本:https://github.com/dcevm/dcevm/releases 如:我的jdk是1.8.0_92 然后下载对应的jar包 下载完之后就是安装 必须是管理员使用 java -jar 命令 输入完命令之后 会弹出程序进行安装 如果有多个jdk,那么就选择你正在使用的jdk进行安装 点击 [Install DCEVM as altjvm ] 进行安装。 安装成功之后,会显示Yes 如图: 如果... 阅读详情

相关推荐

Android加密开发实战:Spongy Castle集成、国密算法与性能优化指南

在移动应用开发中,数据加密是保障用户隐私和信息安全的基石。其核心原理是通过密码学算法对数据进行转换,确保只有授权方才能访问原始内容。这项技术的价值在于为敏感数据(如登录凭证、支付信息)提供机密性、完整性和认证性,是金融、社交、企业应用等场景的必备能力。然而,Android平台内置的加密库存在算法支持不全和版本兼容性问题,例如缺乏国密算法(SM2/SM3/SM4)支持,且旧系统上高级模式(如AES-GCM)可能不可用。这促使开发者寻求更强大的解决方案。Spongy Castle作为Bouncy Castle的

weixin_30553777的博客 417

dcevm

什么是dcevm dcevm(DynamicCode Evolution Virtual Machine)是java hostspot的补丁(严格上来说是修改),允许(并非无限制)在运行环境下修改加载的类文件.当前虚拟机只允许修改方法体(method bodies),decvm,可以增加 删除类属性、方法,甚至改变一个类的父类。原理参见Dynamic Code Evolution for Java dcevm 原理 dcevm 是一个开源项目,遵从GPL 2.0。源文件及执行...

I want to know a little more. 2637

Java AES加密解密实战:从原理到生产环境最佳实践

数据加密是信息安全领域的核心技术,通过特定算法将明文转换为不可读的密文,确保数据在存储和传输过程中的机密性。其核心原理基于密码学中的替换与置换操作,现代加密算法如AES(高级加密标准)采用对称密钥体系,加密与解密使用同一密钥,在效率与安全性间取得平衡。这项技术的价值在于为敏感信息提供基础保护层,是满足合规要求、防止数据泄露的工程基石,广泛应用于金融支付、身份认证、配置管理等涉及用户隐私与业务安全的场景。本文聚焦于Java生态中的AES实现,针对密钥管理、CBC/GCM模式选择、IV处理等高频搜索热词进行深度

weixin_30824599的博客 362

探索DCEVM:一款强大的Java虚拟机扩展

探索DCEVM:一款强大的Java虚拟机扩展 去发现同类优质开源项目:https://gitcode.com/ 是一个创新性的项目,它提供了一种动态代码修改的能力,允许你在运行时热插拔和更新Java类文件,极大地提升了开发者的工作效率。对于那些需要频繁调试、实验性功能测试或者希望优化性能的应用程序开发者来说,这是一个非常有价值的技术。 技术分析 DCEVM 基于 OpenJDK 的 HotSpot...

gitblog_00078的博客 1225

【信息科学与工程学】计算机科学与自动化 第二百三十三篇 凤凰架构01

编号类型领域系统软件/硬件或系统集成方案及系统架构模块子模块函数名称/算法名称算法的数学分析及计算机体系架构及数据结构与算法详细设计及参数列表及数值范围设计关联知识1共识算法分布式基石状态机复制架构:Proposer/Acceptor/Learner 多节点角色模型,基于操作转移(Operation Transfer)分布式共识PaxosPaxos 协议(Prepare/Promise/Accept/Accepted 两阶段)数学基础:多数派(Quorum)投票,基于鸽巢原理保证 W+R>N 时读写集合必有

weixin_49199313的博客 261

DCEVM:DCEVM Intellij IDEA 集成

想要能够在添加/删除方法之后热插拔类吗? 这是一个适合你的插件! 这是一个 IntelliJ IDEA 插件,它提供了与集成——一个基于 OpenJDK 的 JVM,它修复了标准的 。

工作中使用到的单词(软件开发)_第四版

本文汇总了2020-2025年间软件开发相关的工作笔记,主要包括三版技术词汇整理(2020-2025)、优快云文章导出PDF情况,以及2025年6月的专题整理。重点内容涉及:WebSphere中jackson包加载路径问题、Java异步线程类型(守护/非守护线程)的区分与解决方案、DB2数据库连接相关指令(db2listapplications等)、AWS托管服务优势,以及OSGi框架与Java的关系说明。特别标注了技术术语的英文发音(如initiative)和敏感信息处理注意事项(敏感度标签设置)。后续

sun0322 1343

dcevm_demo:dcevm 的演示使用

dcevm_demo 用不起jrebel,自然也会有免费的替代品 dcevm + hotswap。 运行demo: 记得事先安装dcevm,并下载hotswap,并替换命令中的{path} export MAVEN_OPTS="-XX:MaxPermSize=128m -Xmx1024m -Xdebug -XXaltjvm=dcevm -javaagent:{path}/hotswap-agent.jar" mvn jetty:run -pl jcevm_test-web 访问一下 是否得到了 102? 更改一下 CalcService里的calc,换成 return a * b + 500; 然后执行一下 mvn compile 重新访问 是否得到了 502? 无需重启web服务,支持maven多module。

工作中使用到的单词(软件开发)_第三版

====

sun0322 1万+

详解机器人标定

这里是机器人在取料之前,先把自己的角度补正到与 物料当前角度一致,到(X’,Y’)位置处,然后移动 CDx,Cdy,与物料位置也重合,然后去取料。可以使用实物标定,机器人抓住工件摆放9个位置,得到9个机械坐标,相机也得到9个像素坐标,(机器人每次需要回到固定位置拍照),然后标定。(X0,Y0)为旋转中心, (X1,Y1)及(X2,Y2)为工件在视野中旋转角度a的前后坐标,(Xt,Yt)为两点连线的延长。(rx0, ry0)为旋转中心,( x, y)为被旋转的点,(x0,y0)旋转后的点。

weixin_56819992的博客 7628

Python爬取拼多多商品数据保姆级教程(附源码及效果图)

本文介绍了使用Python爬取拼多多商品数据的完整教程。通过DrissionPage库模拟浏览器操作,利用正则表达式提取嵌入在HTML中的商品数据(关键步骤是从window.rawData变量获取),解析后转换为结构化数据并导出Excel。教程包含八大步骤:环境配置、浏览器初始化、网络监听、搜索模拟、数据提取(核心是正则匹配JSON)、数据验证、字段解析和Excel导出,最后提供了封装好的函数可直接调用。该方法特别适合课程作业或毕业设计获取电商数据,能爬取商品名称、价格、销量等关键信息,处理了价格单位转换等

weixin_46449236的博客 2076

java动态替换系统类,DCEVM,Java类动态替换初级实验说明

概述DCEVM,全称Dynamic Code Evolution,一个JVM补丁程序,其目的就是实现运行时的类替换。最新的项目地址为:https://dcevm.github.io/下面将从安装、验证、搭建测试环境、测试等几个方面进行简要说明。安装首先登录网址:https://dcevm.github.io/,站点中明确给出了Binaries(二进制程序)的下载链接,该项目分为两个版本的发布程序,...

weixin_42562079的博客 831

FC游戏Hack实战:从零开始修改游戏数据

本文以《忍者神龟3》为例,详细介绍了从零开始进行FC游戏Hack的完整实战流程。通过使用FCEUX模拟器和调试器,结合“递减法”精准定位生命值内存地址,并利用十六进制编辑器修改关键指令,最终实现“无限生命”效果。文章旨在引导读者理解游戏数据修改的核心原理与操作技巧,重温经典的同时深入计算机程序运行机制。

weixin_28366353的博客 356

Java项目热部署方案之IDEA-HotSwapAgent和DCEVM大法

依赖 DCEVM。而 DCEVM要求jdk版本必须对应,如果你用的 jdk1.8,首先需要确认安装的是jdk8u181。

一掬净土 3970

手把手学计科--web网页设计

网页的组成:文字、图像和超链接等元素。还可以包括哦音频、视频和动画。分类:静态(固定信息)和动态(与服务器数据库进行实时的数据交换。HTML和CSS 是一种静态网页搭建技术。

Yhvaely的博客 1747

J-SCOPE实战:除了看波形,如何用它和JLink-RTT模式高效调试你的STM32变量?

本文详细介绍了如何利用J-SCOPE和JLink-RTT模式高效调试STM32变量,实现实时数据可视化。通过对比HSS和RTT模式的优劣,提供固件端配置、J-SCOPE设置及实战应用案例,帮助开发者快速掌握这一高效调试技术,特别适用于电机控制、传感器融合等需要实时监控的场景。

weixin_29159613的博客 443

Dynamic Code Evolution for Java dcevm 原理

在hostswap dcevm中我们对Dynamic Code Evolution VM有了一个简单的了解,这篇文章将介绍Dynamic Code Evolution VM的实现原理。 有两个概念需要区别下: Dynamic Code Evolution (下文简称DCE):泛指java在运行时修改程序的技术.例如aop等. Dynamic Code Evolution VM(下文简称DCE ...

weixin_34249678的博客 293

内窥镜胶囊(胶囊内镜)硬件方案

内窥镜胶囊(胶囊内镜)硬件方案 前言 说明:该方案为作者2018年上半年完成的第一版,后来搁置了一段时间,才重启这个项目。目前(2020.07)第二版已经快要完成。[联系v:1#7#6#3#3#3#5#0#8#7#0]先给一下第一版和第二版的基本参数。 第一版: 续航时间:3h 帧率:0.5fps 尺寸:12mm * 25mm 角度:45° 第二版: 续航时间:12h 帧率:2-6fps 尺寸:9.8mm * 25mm 角度:130° 第一版属于尝试版,整体方案不是很成熟。第二版这个数据就非常优秀了。我拿了

CrekerLi的博客 4776

如何用HotSwapAgent和DCEVM让java开发像js开发一样高效(JRebel的替代方案)

要高效的开发Java代码,那就必须要让java像js一样,修改过的代码可以实时的反应出来。要了解如何做到这一点,我们先要知道JVM是如何工作的: 我们知道,JAVA程序都是运行在java虚拟机上面(当然JVM有两种类型,JDK和单纯的JRE,这里我们主要是指的JDK,因为只有JDK包含了debug功能,而我们只有在debug端口打开的情况下才能实现run time class load)

点火三周的专栏 1万+

PADS VX2.7学习记录06-PADS Router软件功能操作

PADS VX2.7学习记录06-PADS Router软件功能操作

qq_31444421的博客 7858

AI自动化时代:一人公司的崛起与商业机会

AI技术正在重塑商业格局,催生"一人公司"创业新模式。这种轻资产、高效率的商业模式通过AI自动化运营,让个人创业者能以极低成本挑战传统企业。核心机会包括:1)AI自主公司替代人力密集型业务;2)为企业提供AI转型解决方案;3)利用AI工具实现个人创业。创业者需快速验证创意,聚焦人机协作,把握当前AI发展窗口期。未来,AI赋能的"一人公司"将成为商业新常态,带来更高的专业化和灵活性。抓住AI红利,学会人机协作,是个人创业成功的关键。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 517

DCEVM

介绍 DCEVM是The Dynamic Code Evolution Virtual Machine的缩写。 我们在使用debug进行调试的时候,如果修改了方法体逻辑的话,JVM是可以自动重新加载到内存的。那如果修改实例变量和方法呢,怎么才能做到不重启服务器?下面介绍的就是通过动态...

chuannaoxuan4674的博客 207

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

玩转 DCEVM + HotSwapAgent 热加载,免费、开源!

DCEVM 提供 JRebel 类似的功能,允许允许在运行时无限制地重新定义加载的类,所谓”热插拔、热加载、热部署“功能大抵如是。而 HotwapAgent 则适配了 Servlet 程序的热加载。 最重要的是 DCEVM + JRebel 免费、开源,不用为 JRebel 找破解而折腾,而且也心安理得地用。 安装 安装 DCEVM 需要 DCEVM 和 JVM 版本一致才行。运行 java -...

zhangxin09的专栏 8022

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Hotswap Agent+Dcevm 热部署方案

Dcevm根据官网的的描述,hotswap能实现这些效果看不懂没关系,用软件翻译可以看到如下信息。

aaroncgt的博客 3907

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java decvm生产环境_java生产环境下性能监控与调优(一)-Go语言中文社区

1. -Xmx -Xms-Xms等价于-XX:InitialHeapSize-Xmx等价于-XX:MaxHeapSize查看运行时参数的值:ps -ef | grep tomcat (获得进程号)jinfo -flag MaxHeapSize 进程id显示结果:-XX:MaxHeapSize=2684354562. PrintFlagsFinal3. jps4.jinfo怎样查看一个正在运行的jv...

weixin_29589469的博客 325

java decvm生产环境,生产环境系统负载过高如何定位?

通常情况下,我们最熟悉的查看平均负载的命令可能就是uptime这个命令了最后3个值分别是过去1、5、15分钟内的平均负载,那么在生产环境中,当系统负载达到多少的时候需要我们特别注意呢?个人认为当平均负载持续超过cpu数量的80%以上就代表着当前机器已经算全力在工作了,一旦系统负载过高,就会导致程序变慢,严重的甚至会产生生产事故。比如说当前8核的系统,系统负载一直维持在7以上或者更高,这个时候你就该...

weixin_36121354的博客 324
上一篇: 如何解决gitignore添加失败
下一篇: 【Galois工具开发之路】关于IDEA的gradle工程执行两次premain的bug~
newcih
博客等级 码龄11年 484粉丝 78原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newcih

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值