Hotswap 是一个允许在运行状态下无限制的修改加载类文件的Java虚拟机补丁。当前java虚拟机的动态加载机制只允许修改类的方法体,而打了hotswap补丁以后,可以增加,删除类属性,方法,甚至可以改变一个类的父类。
Hotswap补丁是基于GPL v2.0开源协议的。你可以通过windows,linux,mac os下载hotswap 补丁的源代码或者可执行文件。
安装hotswap
警告: 该补丁目前还处于试验阶段. 当该补丁用于调试java程序使用是,是相当稳定的。但我们不提倡在生产环境中使用该补丁。
现在提供了 32位, 64位 Windows虚拟机, 32位 Mac OS的 (从这里获得), 和32位 Linux 虚拟机的补丁. 所有的修改基于 JDK7-b102版本。
安装程序
该补丁不仅能打在java7上,且打到java 6上,也一样正常工作。
在windows 启动安装程序,在控制台输入:
> java -jar dcevm-0.2-win.jar
在Mac OS启动安装程序,终端输入:
$ sudo java -jar dcevm-0.2-mac.jar
在Mac OS启动安装程序,终端输入:
$ sudo java -jar dcevm-0.2-linux.jar
安装程序会替换掉java下 bin/client/jvm.dll 和 bin/server/jvm.dll ,并将以后的jvm.dll备份到相应目录下。还会将dcevm.jar 加到lib/ext/ 目录.
图一:hotswap补丁安装界面。
执行上述命令后,就会出现图一界面,选择将要安装该补丁的java目录,单击安装就可以了。
Ps:如果你的Linux没有图形界面,您可以从这里下载已经打好补丁的java。
使用hotswap调试java程序
- 首先用修改后的java以debug模式启动 java程序。
- 使用eclipse连接到该java进程(也可以直接在eclipse中以debug方式启动)
- 现在在eclipse 工程下面针对class文件的任何修改将会直接反映到java程序中去。
分享到:
相关推荐
Java热替换(HotSwap)是一项强大的技术,它允许开发者在JVM运行时更新类的代码,而无需重启应用。这极大地提高了开发效率,因为在调试和修复bug的过程中,我们不再需要频繁地停止、编译和重启应用程序。Java Hot...
hotswap-agent-1.3.1-SNAPSHOT.jar+DCEVM-full-7u79-installer.jar 适用jdk版本1.7.0_79 DCEVM-full-7u79...-XXaltjvm=dcevm -javaagent:E:\develope\hotswap-agent\hotswap-agent-1.3.1-SNAPSHOT.jar 然后享受热加载吧
《Java类热更新技术——Hotswap安装与使用详解》 Hotswap技术,作为一种高效便捷的Java开发工具,允许开发者在不重启服务器的情况下修改并实时应用Java类的更改,极大地提升了开发效率,尤其是在Jboss等应用服务器...
默认的时候会在HotSwapManager的static模块启动时创建一个hotswap文件夹, hotswap文件夹中有三个文件 1、classes文件夹,就是把java文件编译出来的class文件存放位置 2、java文件夹,就是你要热更的java文件存放...
# 基于Java的Hotswap插件 [![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) [![Downloads]...
标题 "4.hotswap.7z" 提到的关键词是 "hotswap",这通常与Java开发中的热替换(HotSwap)技术有关。热替换是指在应用程序运行时,能够替换或更新类的定义,而无需重启应用。这对于开发环境非常有用,因为它提高了...
开发者可以通过继承`java.lang.ClassLoader`创建自己的类加载器,实现特定的类加载逻辑,如动态加载、代码热替换(HotSwap)等功能。HotSwap允许在JVM运行时替换已加载的类,从而无需重启应用就能更新代码,提高了...
think-hotswap一个简单的Java类替换工具简介本工具采用Java内部提供的Instrumentation来实现类的热替换操作,故不支持修改类结构与类方法的操作,但是能在不修改类结构和方法的情况下,简单的修改其方法内部的一些...
1. **Java HotSwap技术**:Java HotSwap是JVM(Java虚拟机)提供的一种特性,允许在运行时替换已经加载的类,而无需重新启动应用。这在调试和优化代码时非常有用,减少了因为频繁重启应用而浪费的时间。 2. **...
jdk-8u181-macosx-x64.dmg DCEVM-8u181 hotswap1.4.2
1、需要用到的agent/commons-agent.jar为hotswap打出来的包(HotSwapManager中定义) 2、需要用到lombok插件 3、测试的class为 DemoTestClazz 4、定时检测热更的class为CheckHotwapSchedule 5、热更后...
Java HotSwap是JVM(Java虚拟机)的一项特性,允许开发者在运行时替换已加载的类的字节码,从而实现代码的热更新。这一功能主要依赖于JDK的`jdwp`(Java Debug Wire Protocol)协议和`jvmstat`性能监控工具。当类...
提到的Java Hotswap和Gilgul技术可能是在讨论Java平台上的动态类替换能力,这是一种在Java虚拟机运行时动态更改代码而不中断服务的技术。这有助于快速修复错误和改进系统性能,对于实现SOA架构中服务的动态演进非常...
在Java编程领域,"hotswap"或"热交换"通常指的是在不重启应用程序的情况下,能够动态替换或更新正在运行的代码。这对于开发和调试过程非常有用,因为它允许开发者快速修复错误或更新功能,而无需中断服务。Java提供...
而decvm-0.2 for java7就是这样一款针对Java 1.7版本的插件,它为开发者带来了强大的"hotswap"功能,即代码热替换技术,使得开发者在运行时能够修改类的源代码,无需重启应用即可看到修改效果。本文将深入探讨这一...
基于 Ant 的 Java 项目示例示例 Java 项目...您可以通过在终端中运行“run-hotswap”,编辑代码中打印的字符串,然后在另一个终端中运行“hotswap”来亲自演示这一点。正在运行的程序中打印的消息应该更改为新字符串。
由于这些版本不包含内置 Hotswap Agent,因此您需要手动复制hotswap-agent.jar到文件夹。您可以在此处lib/hotswap找到最新的 Hotswap Agent 。确保文件夹中的文件命名时文件名中不包含任何版本号。lib/ho
Java中实现DandD更新的关键技术之一是Java HotSwap。HotSwap允许在运行时替换已加载类的字节码,而不会中断应用程序的执行。这通常是通过Java虚拟机(JVM)的调试接口(如JDI,Java Debug Interface)实现的。开发...
阿尔萨斯热交换有时,当...选择需要热部署的javasource文件或者类文件,在类名或方法名上快捷快捷键,选择“ Arthas Hot Swap”的“ Swap this class”,插件后台执行成功后会把热部署需要的命令复制到粘贴板。登录远程
总的来说,Java运行时无限制地重新定义类是通过Hotswap技术实现的,它利用了JVM的动态加载特性,减少了开发中的重启次数,提高了迭代速度。在开发过程中,配合合适的工具和库,如DCEVM或JRebel,能够显著提升开发者...