`

使用JavaRebel实现即时重载java class更改

 
阅读更多

本文以javarebel-2.0 free版本为例,包括如何配置在使用Eclipse插件开发tomcat应用时,实现即时重载java class更改。


1. 首先下载JavaRebel, 官方下载(
Free版本) , 下载后解压到本地目录,例如 D:/javarebel.jar

2. 因为JavaRebel在不同的jdk版本,配置也不同,本例以JDK5+以上版本为例

   在Eclipse的tomcat插件中,配置 JavaReble, 如图

 

在Jvm配置中加入下面的设置

-noverify
-javaagent:D:/javarebel.jar
-Drebel.dirs=D:\project\WEB-INF\classes
-Drebel.spring_plugin=true

 

说明:
  -Drebel.dirs 指定要监控的 编译后的java 文件目录
  -Drebel.spring_plugin 表示对Spring的支持,默认是false

配置完上面后,还需要关闭tomcat的应用程序的reloadable设置

<Context path="/hello"  reloadable="false" docBase="D:\project"  />

 

接下来,可以启动Tomcat服务了,如果配置正确,启动服务后,会有以下提示

#############################################################

 ZeroTurnaround JavaRebel 2.0 (200903241906)
 (c) Copyright Webmedia, Ltd, 2007-2009. All rights reserved.

 You are running JavaRebel evaluation license.
 You have 30 days until the license expires. 

 You will see this notification until you obtain a 
 full license for your installation. 
                                                          
 Visit www.javarebel.com for instructions on obtaining    
 a full license. If you wish to continue your evaluation  
 please e-mail to support@zeroturnaround.com.             
                                                          
 If you think you should not see this message contact     
 support@zeroturnaround.com or check that you have your   
 license file in the same directory as the JAR file.      
                                                          
#############################################################



JavaRebel: Directory 'D:\develop\WEB-INF\classes' will be monitored for class changes.

=============================== [JavaRebel Spring Framework Plugin] ===============================
Plugins are contributed by third party and can cause compatibility problems.
If you have any troubles set -Drebel.spring_plugin=false to disable it.
------------------------------------------------------------------------------------------
Description: Supports adding new beans and adding new bean dependencies using
annotations or XML. Singletons will be reconfigured after the change. It also
supports adding or changing Spring MVC controllers or handlers.
=============================== [/JavaRebel Spring Framework Plugin] ==============================

 

如果出上以上提示,则表示JavaRebel已经配置成功。


接下来大家可以在Eclipse中修改代码,进行编译进行测试。
如果Eclipse提示, 则直接关接不理它即可,你发现你修改后的 class文件已经被jvm加载了


 

分享到:
评论

相关推荐

    javarebel-spring-plugin-2.1.jar

    使用JavaRebel实现即时重载javaclass更改 对于SPring的使用时直接将其加入到WEB-INF/lib下,能有效的缩短部署时间,提高效率

    java class reload

    在这个例子中,我们将探讨如何在Tomcat环境下实现Java类的热重载。 1. **Java ClassLoader原理** - Java程序在运行时,类的加载是由ClassLoader负责的。默认情况下,当类被加载后,除非应用停止,否则ClassLoader...

    Java方法重载+Java重载案例

    Java方法重载+Java重载案例+Java重载 Java方法重载+Java重载案例+Java重载 Java方法重载+Java重载案例+Java重载 Java方法重载+Java重载案例+Java重载

    Javarebel使用指南.doc

    当检测到Java类文件的修改时,它会立即重载这些更改,使得开发者能够在不中断应用运行的情况下查看和测试新代码。这样,开发者可以更快地迭代,减少等待时间和调试过程中的繁琐步骤,从而极大地提高了生产力。 2. ...

    ACCP5.0S2教程\使用Java实现面向对象编程(Java OOP)\使用Java实现面向对象编程(Java OOP)上机贯穿案例源码

    Java通过接口(interface)和抽象类(abstract class)实现多态,学习者将学习如何设计和使用多态接口。 5. **构造器**:构造器用于初始化新创建的对象,学习者应了解构造器的语法和作用,以及如何使用构造器参数化...

    java重载的实现方法

    Java重载的实现方法详解 Java重载(Overload)是Java编程语言中的一种机制,它允许在同一个类中定义多个方法,具有相同的名称,但参数列表不同。这种机制可以提高代码的灵活性和可读性。本文将详细介绍Java重载的...

    实现一个complex class.(数学里的复数)练习运算符的重载。

    实现一个complex class.(数学里的复数)练习运算符的重载。 要求具有以下操作:  构造函数  析构函数  拷贝构造函数  operator=  operator*  operator+  operator-  operator/  operator==  ...

    java 使用构造方法的重载计算课程的GPA值

    下面是一个简单的`Course`类的实现,其中包含了构造方法的重载: ```java public class Course { private String name; private int credits; private double grade; // 默认构造方法 public Course() { ...

    Java重写重载线程

    在Java中,可以使用`synchronized`关键字来实现互斥锁定。 - **选项A**:“可以获得对任何对象的互斥锁定”是不正确的。实际上,互斥锁定只适用于访问共享资源的情况。 - **选项B**:“通过继承Thread类或实现...

    java类重载,可以用于热更新

    在Java中,类是由ClassLoader加载的,当一个类被加载后,如果该类的.class文件被修改,ClassLoader可以重新加载这个修改后的类,从而实现运行时的代码更新。但是,需要注意的是,热更新并非总是可行的,有些复杂的...

    Java中重载和重写总结

    Java 中重载和重写总结 Java 中的重载(Overloading)和重写(Overriding)是两个非常重要的概念,它们都是多态性的体现形式。 一、Java 中的重载(Overloading) Java 中的重载是指在同一个类中可以创建多个...

    Java编程中对象的创建与使用以及方法的重构与重载的区别说明

    ### Java编程中对象的创建与使用以及方法的重构与重载的区别说明 ...总结起来,对象的创建与使用是Java编程的基础,而方法的重构与重载则是实现多态性的关键手段。理解这两者的区别和应用对于掌握Java编程至关重要。

    编写实现函数重载程序

    2. **编译**:使用Java编译器(如`javac`)将源代码编译成字节码(`.class`文件)。 3. **运行**:使用Java虚拟机(JVM)运行编译后的程序,查看输出结果。 实验结果展示了程序的原始代码以及预期的运行结果。`main...

    JAVA方法的定义和方法的重载Overload.docx

    Java 方法的定义和方法的重载 Overload Java 方法是 Java 编程语言的基本组成部分之一。方法是解决问题的多行代码的集合,给予一个名字,以便多次使用。方法的定义和方法的重载是 Java 编程语言的基础知识,本文将...

    关于Java如何正确地实现方法重载详解.rar

    下面我们将详细探讨如何在Java中实现方法重载。 首先,我们来理解方法重载的基本原则: 1. **相同的方法名**:重载的方法必须具有相同的名称,这是识别它们为同一组重载方法的基础。 2. **不同的参数列表**:参数...

    java中重载与重写

    在Java编程语言中,方法的重载(Overloading)与重写(Overriding)是两个非常重要的概念。它们虽然只有一字之差,但其实质却大相径庭。理解这两者的不同对于深入掌握Java语言至关重要。 ### 一、重载(Overloading...

    JAVA重载概念

    ### JAVA重载概念详解 #### 一、方法重载的概念 在 Java 编程语言中,方法重载(Method Overloading)是一种...此外,Java 的自动类型转换机制进一步增强了方法重载的灵活性,让程序员能够更灵活地设计和使用方法。

    Java实现重载的方法共1页.pdf.zip

    下面将详细解释Java实现方法重载的原理、规则以及实际应用。 1. **重载的规则**: - **方法名相同**:所有重载的方法都必须具有相同的名字。 - **参数列表不同**:参数列表必须有所区别,这包括参数的个数、参数...

    使用Java实现面向对象编程(Java OOP)

    在Java中,使用关键字`class`来声明一个类。 - 对象:对象是类的实例,是程序运行时的数据结构。通过`new`关键字和构造器可以创建对象。 2. 封装 - 封装是面向对象的核心特性,它隐藏了对象内部的细节,只对外...

    Java语言中的 覆盖重载和多态

    Java语言中的覆盖(Override)和重载(Overload)以及多态(Polymorphism)是面向对象编程的重要概念,它们是实现代码复用和灵活性的关键。 **多态性(Polymorphism)** 多态性是Java中一种允许一个接口有多种实现的方式。...

Global site tag (gtag.js) - Google Analytics