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示例。参考http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
默认的时候会在HotSwapManager的static模块启动时创建一个hotswap文件夹, hotswap文件夹中有三个文件 1、classes文件夹,就是把java文件编译出来的class文件存放位置 2、java文件夹,就是你要热更的java文件存放...
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类不需要重启jboss的利器--hotswap安装手册
think-hotswap一个简单的Java类替换工具简介本工具采用Java内部提供的Instrumentation来实现类的热替换操作,故不支持修改类结构与类方法的操作,但是能在不修改类结构和方法的情况下,简单的修改其方法内部的一些...
重温java之classloader体系结构(含hotswap) 启动类加载器 扩展类加载器 系统类加载器
1、需要用到的agent/commons-agent.jar为hotswap打出来的包(HotSwapManager中定义) 2、需要用到lombok插件 3、测试的class为 DemoTestClazz 4、定时检测热更的class为CheckHotwapSchedule 5、热更后...
java开发常用工具-整理中
jdk-8u181-macosx-x64.dmg DCEVM-8u181 hotswap1.4.2
热插拔使用 java 代理热交换类
阿尔萨斯热交换有时,当...选择需要热部署的javasource文件或者类文件,在类名或方法名上快捷快捷键,选择“ Arthas Hot Swap”的“ Swap this class”,插件后台执行成功后会把热部署需要的命令复制到粘贴板。登录远程
对于dcevm8,使用选项-XXaltjvm=dcevm -javaagent:hotswap-agent.jar启动应用程序以进行基本设置。 (可选)您可以将hotswap-agent.properties添加到您的应用程序中,以配置插件和代理的行为。 外挂程式 每个应用...
hotswap支持Java1.7版本插件
示例Java项目 这是建立新的基于Ant的Java项目的参考。 它包含了我多年来学到的大多数蚂蚁技巧。 当我开始一个新的Java项目时,我将克隆该存储库,删除我... 您可以通过在终端中运行“ run-hotswap”,在代码中编辑打印
示例Java项目这是建立新的基于Ant的Java项目的参考。 它包含了这些年来我学到的大多数蚂蚁技巧。 当我开始一个新的Java项目时,我将克隆该存储库,删除我不... 您可以通过在终端中运行“ run-hotswap”,在代码中编辑打
测试javassist 用于动态代码插入的字节码级别的类操作测试虚拟机参数-agentlib:jdwp = ... 根据您运行的 JVM,可能会出现以下错误:线程“HotSwap”中的异常 java.lang.UnsupportedOperationException:未实现架构更改
示例Java项目 这是建立新的基于Ant的Java项目的参考。 它包含了我多年来学到的大多数蚂蚁技巧。 当我开始一个新的Java项目时,我将克隆该存储库,删除我不... 您可以通过在终端中运行“ run-hotswap”,在代码中编辑打
IntelliJ的单个热交换从下载使用此插件,您可以热交换所选的单个文件。 它将在绿色“ Build Project”锤子旁边提供一个蓝色锤子。 Intellij的内置功能“编译并重新加载”始终重新加载目标类引用的每个文件。
Android通信机制及QCRIL原理介绍 。每个Android应用依赖于/system/framework文件夹下的一些核心库,这些核心库用是java编写的。这些应用还依赖于/system/lib文件夹下的动态链接库,这些动态链接库是C / C++编写的。
使用改进的编辑器增加了产生力和代码可靠性,还有Hot Swap调试和改善的性能。 2.3.2 后台数据库 SQL Server 2000数据库逐渐成为Windows操作系统平台下进行数据库应用开发中较为理想的选择之一。SQL Server 2