`
diaolanshan
  • 浏览: 175125 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JAVA HotSwap

    博客分类:
  • JAVA
 
阅读更多

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程序中去。

分享到:
评论

相关推荐

    Java hotswap demo

    Java热替换(HotSwap)是一项强大的技术,它允许开发者在JVM运行时更新类的代码,而无需重启应用。这极大地提高了开发效率,因为在调试和修复bug的过程中,我们不再需要频繁地停止、编译和重启应用程序。Java Hot...

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

    《Java类热更新技术——Hotswap安装与使用详解》 Hotswap技术,作为一种高效便捷的Java开发工具,允许开发者在不重启服务器的情况下修改并实时应用Java类的更改,极大地提升了开发效率,尤其是在Jboss等应用服务器...

    hotswap-agent+DCEVM-full

    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 然后享受热加载吧

    hotswap-for-java-file.zip

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

    基于Java的Hotswap插件.zip

    # 基于Java的Hotswap插件 [![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) [![Downloads]...

    4.hotswap.7z

    标题 "4.hotswap.7z" 提到的关键词是 "hotswap",这通常与Java开发中的热替换(HotSwap)技术有关。热替换是指在应用程序运行时,能够替换或更新类的定义,而无需重启应用。这对于开发环境非常有用,因为它提高了...

    classloader体系结构(含hotswap)

    开发者可以通过继承`java.lang.ClassLoader`创建自己的类加载器,实现特定的类加载逻辑,如动态加载、代码热替换(HotSwap)等功能。HotSwap允许在JVM运行时替换已加载的类,从而无需重启应用就能更新代码,提高了...

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

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

    Jreable.rar

    1. **Java HotSwap技术**:Java HotSwap是JVM(Java虚拟机)提供的一种特性,允许在运行时替换已经加载的类,而无需重新启动应用。这在调试和优化代码时非常有用,减少了因为频繁重启应用而浪费的时间。 2. **...

    DCEVM+HotSwapAgent实现java类热加载工具

    jdk-8u181-macosx-x64.dmg DCEVM-8u181 hotswap1.4.2

    common-tools-hotswap.zip

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

    hot:java的热更新演示例子

    Java HotSwap是JVM(Java虚拟机)的一项特性,允许开发者在运行时替换已加载的类的字节码,从而实现代码的热更新。这一功能主要依赖于JDK的`jdwp`(Java Debug Wire Protocol)协议和`jvmstat`性能监控工具。当类...

    系统架构设计师设计论文.pdf

    提到的Java Hotswap和Gilgul技术可能是在讨论Java平台上的动态类替换能力,这是一种在Java虚拟机运行时动态更改代码而不中断服务的技术。这有助于快速修复错误和改进系统性能,对于实现SOA架构中服务的动态演进非常...

    hotswap:使用 java 代理热交换类

    在Java编程领域,"hotswap"或"热交换"通常指的是在不重启应用程序的情况下,能够动态替换或更新正在运行的代码。这对于开发和调试过程非常有用,因为它允许开发者快速修复错误或更新功能,而无需中断服务。Java提供...

    decvm-0.2 for java7

    而decvm-0.2 for java7就是这样一款针对Java 1.7版本的插件,它为开发者带来了强大的"hotswap"功能,即代码热替换技术,使得开发者在运行时能够修改类的源代码,无需重启应用即可看到修改效果。本文将深入探讨这一...

    DandD更新

    Java中实现DandD更新的关键技术之一是Java HotSwap。HotSwap允许在运行时替换已加载类的字节码,而不会中断应用程序的执行。这通常是通过Java虚拟机(JVM)的调试接口(如JDI,Java Debug Interface)实现的。开发...

    ArthasHotSwap:此存储库是Intellij IDEA的插件,可以帮助您无需任何配置和调试即可实现热插拔。进行,只需几个简单动作就能完成)

    阿尔萨斯热交换有时,当...选择需要热部署的javasource文件或者类文件,在类名或方法名上快捷快捷键,选择“ Arthas Hot Swap”的“ Swap this class”,插件后台执行成功后会把热部署需要的命令复制到粘贴板。登录远程

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

    总的来说,Java运行时无限制地重新定义类是通过Hotswap技术实现的,它利用了JVM的动态加载特性,减少了开发中的重启次数,提高了迭代速度。在开发过程中,配合合适的工具和库,如DCEVM或JRebel,能够显著提升开发者...

    java简单热替换

    Java热替换(Hot Swap)是一种在程序运行时更新或替换类的方法实现,而无需重启应用的技术。这个特性在开发环境中非常有用,因为它可以显著提高开发效率,减少因反复重启应用而导致的时间消耗。Java的热替换通常与...

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

    对于dcevm8,使用选项-XXaltjvm=dcevm -javaagent:hotswap-agent.jar启动应用程序以进行基本设置。 (可选)您可以将hotswap-agent.properties添加到您的应用程序中,以配置插件和代理的行为。 外挂程式 每个应用...

Global site tag (gtag.js) - Google Analytics