`
wcj10051891
  • 浏览: 25643 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

java class运行时热替换(hotswap)(转载)

 
阅读更多

关于hotswap(该补丁的网址http://ssw.jku.at/dcevm/)

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程序

  1. 首先用修改后的java以debug模式启动 java程序。
  2. 使用eclipse连接到该java进程(也可以直接在eclipse中以debug方式启动)
  3. 现在在eclipse 工程下面针对class文件的任何修改将会直接反映到java程序中去。
分享到:
评论
1 楼 aigo 2012-05-29  
神器!

相关推荐

    Java hotswap demo

    Java hotswap示例。参考http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/

    hotswap-for-java-file.zip

    默认的时候会在HotSwapManager的static模块启动时创建一个hotswap文件夹, hotswap文件夹中有三个文件 1、classes文件夹,就是把java文件编译出来的class文件存放位置 2、java文件夹,就是你要热更的java文件存放...

    修改java类不需要重启jboss的利器--hotswap安装手册

    修改java类不需要重启jboss的利器--hotswap安装手册

    hotswap-agent+DCEVM-full

    hotswap-agent-1.3.1-SNAPSHOT.jar+DCEVM-full-7u79-installer.jar 适用jdk版本1.7.0_79 DCEVM-full-7u79-installer.jar需要在所在目录用java -jar命令运行,jvm运行只指定加载了DCEVM的jdk,运行时jvm设置参数 ...

    HotSwap!.EXE

    HotSwap正式版是占用内存很小且使用范围很广泛的硬盘热插拔软件,HotSwap最新版可智能识别系统的热插拔设备,在系统中增加一个图标,方便关闭SATA硬盘,这样你的热插拔设备就会比较安全了

    think-hotswap:一个简单的Java类替换工具

    think-hotswap一个简单的Java类替换工具简介本工具采用Java内部提供的Instrumentation来实现类的热替换操作,故不支持修改类结构与类方法的操作,但是能在不修改类结构和方法的情况下,简单的修改其方法内部的一些...

    HotSwap-sata硬盘热插拔工具

    HotSwap,是一款专业的sata硬盘热插拔工具。 大家都知道SATA因盘和ESATA硬盘都可以实现热插拔,可是又不像USB设备一样在系统托盘区有一个关闭图标,如果不关闭就拔下的话,可能造成硬盘数据不完整,严重的还会损坏...

    hotswap-module:无需任何代码更改即可将Node.js模块替换为另一个模块

    如果未安装hotswap-module ,只需使用npx运行它: npx hotswap-module stream readable-stream script.js 如果全局安装了hotswap-module : hotswap-module stream readable-stream script.js 如果将hotswap-...

    rust-hotswap:在运行的可执行文件中轻松进行热交换功能

    一个库,用于以最小的努力热交换运行中的代码,需要每晚进行构建。 请注意,该库目前仅是原型,并且可能经常崩溃。 用法 添加hotswap和hotswap-runtime依赖于你的Cargo.toml 。 将具有相同项目名称和路径的dylib...

    common-tools-hotswap.zip

    1、需要用到的agent/commons-agent.jar为hotswap打出来的包(HotSwapManager中定义) 2、需要用到lombok插件 3、测试的class为 DemoTestClazz 4、定时检测热更的class为CheckHotwapSchedule 5、热更后...

    sata硬盘热插拔工具:HotSwap ┆V5.0.0.0 多国语言版 V6.0.0.0 多国语言版 V6.1.0.0 多国语言版

    HotSwap,是一款专业的sata硬盘热插拔工具。大家都知道SATA因盘和ESATA硬盘都可以实现热插拔,可是又不像USB设备一样在系统托盘区有一个关闭图标,如果不关闭就拔下的话,可能造成硬盘数据不完整,严重的还会损坏...

    CPCI Hotswap ----- PICMG 2.1 R2.0(Hot Swap)-2

    接CPCI Hotswap ----- PICMG 2.1 R2.0(Hot Swap)-1

    CPCI Hotswap ----- PICMG 2.1 R2.0(Hot Swap)-1

    CPCI 热插拔设计规范,希望对大家有用! 由于容量大小限制,这是前部分,后部分在另一主题: CPCI Hotswap ----- PICMG 2.1 R2.0(Hot Swap)-2

    classloader体系结构(含hotswap)

    重温java之classloader体系结构(含hotswap) 启动类加载器 扩展类加载器 系统类加载器

    热插拔插件Mojito-rs-Hotswap.zip

    Mojito-rs-Hotswap 是 Mojito 资源存储的热插拔(Hotswap)插件。 标签:Mojito 分享 window._bd_share_config = { "common": { "bdSnsKey": {}...

    热插拔「Hot Swap」-crx插件

    HotSwap交换了有关2016年大选的所有帖子(从过道的每一侧)与相关的,可操作的政治参与信息,并抛出了GIF幼犬,以作为一种很好的措施。 帖子不会以任何方式删除或删除。 您仍然可以选择查看它们,但是默认情况下它们...

    PMBus™ Application Profile for Hot Swap Controllers V1.0.pdf

    PMBus™ Application Profile for Hot Swap Controllers V1.0.pdf

    电源技术中的Linear推出2.9V至15V热插拔(Hot Swap)控制器

    凌力尔特公司(Linear)推出2.9V至15V热插拔(Hot Swap)控制器LTC 4280,该器件具内置8位ADC和I2C兼容接口。集成的数字电源监视可在高可用性系统中实现复杂的平台管理,测量板卡电压和电流以及记录过去和现在的故障情况...

    HotswapAgent:Java在运行时无限制地重新定义类

    Java无限运行时类和资源重新定义。 最初,该项目的主要目的是避免臭名昭著的更改代码->重新启动并等待...- >检查开发生命周期。 最近,基于运行应用程序中软件的开发,该模式演变为Java世界中的新范例,该方法甚至...

    hotswap:使用 java 代理热交换类

    热插拔使用 java 代理热交换类

Global site tag (gtag.js) - Google Analytics