`
275012124
  • 浏览: 36899 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

jreloader动态从新加载class而不重启JVM

 
阅读更多
jreloader动态重新加载class而不重启JVM
在Tomcat 中可以配置 reloadable="true" 做到类改变后,Tomcat 重新加载。其实这个过程大约也是当 Tomcat 发现有改变的类会重新启动一个新的应用程序重新加载所有的类来服务于新的请求,只是不需要你手动的去执行 shutdown.sh(.bat),再 startup.sh(.bat),但这样有个问题就是,修改一个class需要花费一定时间去让Tomcat重新自动加载部署,非常浪费时间。
频繁重启对于调试是一种煎熬,因此希望能找到一个工具能在类改动的时候不需要重新启动当前应用而是只加载修改过的class, 当然不希望重启 Tomcat了,能实现此功能的工具有 JavaRebel 和 jreloader,其中前者是收费的,后者是开源的.
jreloader的使用方法可以查看下载ZIP包中的INSTALL.txt,在Eclipse额的Tomcat插件中的使用方法如下。
1.进到Tomcat 配置的Overview 页,点击 Open launch configuration, 弹出 Edit Configuration 窗口,再到 Arguments 标签页中,VM arguments: 输入框中加上:
        -noverify -javaagent:E:\jreloader-0.4\jreloader.jar -Djreloader.dirs=E:\eclipse3.7\workspace\CIATest\WebContent\WEB-INF\classes,E:\eclipse3.7\workspace\CIAServer0515\WebContent\WEB-INF\classes
2. 把Tomcat 里该应用的reloadable 设为false,阻止Tomcat 去管理,而完全由jreloader 去承担类的热加载。
3. 启动Tomcat,修改一个类,由jreloader去加载修改的类,会看到日志:
    E:\eclipse3.7\workspace\CIATest\WebContent\WEB-INF\classes\cia\test\transtest\action\TransPageAction.class
[JReloader:INFO ] Reloading class cia.test.transtest.action.TransPageAction
分享到:
评论

相关推荐

    jvm 加载class文件

    Java作为一种动态性极强的解释型编程语言,在程序运行时,Java虚拟机(JVM)负责将编译生成的`.class`文件加载到内存中进行执行。在Java环境中,每个类(Class)以及接口(Interface)都会对应一个`.class`文件,...

    动态编译字符串成java,并且添加class到jvm

    在Java编程中,动态编译字符串成Java代码并将其加载到JVM(Java虚拟机)是一种高级技巧,常用于运行时代码生成、元编程或插件系统等场景。这一技术的核心在于利用Java的反射API和Java Compiler API。下面将详细阐述...

    JVM加载class文件的原理机制

    JVM加载class文件的原理机制 JVM加载class文件的原理机制是Java中的核心机制之一,由于Java中的所有类必须被装载到JVM中才能运行,这个装载工作是由JVM中的类装载器完成的。类装载器所做的工作实质是把类文件从硬盘...

    使用classloader动态加载Class

    在Java编程语言中,类加载器(ClassLoader)是运行时环境的核心组成部分,它负责将类的字节码从各种来源(如JAR文件、网络、内存等)加载到Java虚拟机(JVM)中,使得程序能够运行。本文将深入探讨“使用classloader...

    Java类动态加载(一)——java源文件动态编译为class文件

    这篇博客“Java类动态加载(一)——java源文件动态编译为class文件”可能主要探讨了如何在运行时将Java源代码(.java)编译成对应的字节码文件(.class),并将其加载到Java虚拟机(JVM)中。以下是对这个主题的详细解析...

    JVM加载class文件的原理机制.pdf

    JVM加载class文件的原理机制 JVM加载class文件的原理机制是Java虚拟机中一个非常重要的组件,负责将class文件加载到内存中,以便Java程序的执行。下面是JVM加载class文件的原理机制的详细介绍: 类加载的原理 在...

    java热加载Class文件

    Java热加载Class文件是开发者在调试和优化代码时非常实用的一种技术,它允许开发者在不重启JVM的情况下更新和替换已加载的类,极大地提高了开发效率。本文将深入探讨Java热加载Class文件的相关知识点。 首先,理解...

    Java类重加载工具 JReloader

    Java类重加载工具JReloader是一款专为Java开发者设计的实用工具,它允许开发者在运行时动态地重新加载修改过的类,从而极大地提高了开发效率,减少了应用重启的次数。这个特性对于快速迭代和调试代码特别有帮助,...

    JVM类加载机制详细讲解

    例如,当我们尝试加载 `java.lang.Object` 类时,首先会由启动类加载器加载,如果它找不到,会继续交给扩展类加载器,接着是系统类加载器,最后才会由用户自定义的类加载器尝试加载。 1.3 类加载双亲委派示例 为了...

    jvm字节码自动加载

    在Java虚拟机(JVM)中,字节码自动加载是一项关键功能,它使得Java程序能够在运行时动态地发现和加载类。字节码是由Java源代码编译而成的二进制格式,它包含了类和接口的信息。了解JVM如何自动加载字节码对于深入...

    JVM技术,反射与动态代理

    1. 类加载机制:JVM通过类加载器(ClassLoader)来加载.class文件,分为启动类加载器、扩展类加载器和应用程序类加载器。类的加载遵循双亲委派模型,确保类的唯一性。 2. 字节码执行:JVM将字节码转换为机器码,...

    动态加载jar包

    这种技术广泛应用于插件系统、框架开发以及服务升级等场景,因为它允许程序在不重启的情况下添加、更新或移除功能模块。 在Java中,动态加载jar包的核心在于使用`java.lang.ClassLoader`类或其子类。ClassLoader是...

    JVM实战-JVM类加载机制案例分析

    当程序启动时,JVM会根据应用程序的需求动态地加载所需的类到内存中。这个过程包括三个主要阶段:加载、验证和初始化。其中,加载是将类的二进制数据读入内存;验证是为了确保加载的类文件符合JVM规范;初始化则是...

    codeegginterviewgroup#CodeEggDailyInterview#84.JVM加载class文件的原理机制

    JVM加载class文件的原理机制JVM加载class文件的原理机制 JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加

    热加载类工具

    动态重新加载改变的类而不用重启 JVM ,对于大型软件来说开发程序重启是非常耗时的,开发时新建类,在已有的类中添加方法是无法加载上的,大家应该经常碰到ECLIPSE中由于添加方法编译后弹出的警告,此时如果需要调试...

    Java语言-动态编译代码并热加载类

    在Java编程中,动态编译代码并热加载类是一项重要的技术,它允许程序在运行时修改或添加新的类,而无需重启应用。这种能力对于快速迭代开发、调试和性能优化非常有用。本主题将深入探讨Java中的动态编译与热加载机制...

    深入Java虚拟机_002_深入详解JVM之类加载器深度剖析、根、扩展及系统类加载器

    被动使用则是在JVM运行过程中,由于JVM或JDK内部需要而进行的加载,如JNI查找类、JDK工具类的使用等。 在Java开发中,理解JVM的类加载机制对于优化性能、解决类冲突问题、实现自定义类加载器等都有重要意义。例如,...

    JVM类加载过程.pptx

    JVM的类加载机制是JVM的核心机制之一,它把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初识化,形成可以被虚拟机直接使用的Java类型。 Java代码执行流程是JVM的核心流程之一,它首先通过...

    jreloader-0.4

    JReloader是一个高效、便捷的工具,它允许开发者在不重启Java虚拟机(JVM)的情况下,实现类文件的动态重新加载,极大地提高了开发效率。 JReloader的核心功能在于它的类文件监控和热更新机制。当开发者修改了某个...

    java热加载Class文件.zip

    Java热加载Class文件技术是一种在不重启应用服务器的情况下更新或替换正在运行的Java类的方法,这对于开发者来说是一项非常实用的功能,因为它极大地提高了开发效率。在传统的开发过程中,修改代码后通常需要停止、...

Global site tag (gtag.js) - Google Analytics