文章目录

  • 一.描述
  • 1.引子
  • 2.JRebel的热加载原理
  • 3.热加载和热部署的区别
  • 二.IDEA安装插件的两种方式
  • 1.在线安装
  • 2.下载安装包离线安装
  • 三.安装并激活JRebel步骤
  • 四.项目部署
  • 生成rebel.xml文件
  • 1.tomcat项目
  • 2.springBoot项目
  • 3.项目的启动与运行效果
  • 五.其他热加载的方式

一.描述

1.引子
  1. IDEA上本身是不支持热加载的的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少时间。目前对于idea热加载最好的解决方案就是安装JRebel插件,这样不论是更新 class 类还是更新 Spring 配置文件都能做到立马生效,大大提高开发效率。
  2. JRebel插件是需要收费使用的,虽然插件提供了14天的试用(获取14天试用资格请点击这里https://zeroturnaround.com/software/JRebel/trial/并且试用信息的填写也是随便填上虚假信息即可,但是只有一次试用机会,就是说试用期过了就不能再通过试用的方法继续使用插件了,所以对于JRebel插件的破解还是很有必要的。
  3. JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响

本人的IDEA版本为 IntelliJ IDEA 2018.3 x64,但是版本不同安装jrebel的插件的原理是一样的

2.JRebel的热加载原理

jrebel是一个基于JVM类加载机制的插件,能自动重新加载修改后的java字节码文件。因为我们在IDEA中开启了自动编译功能,所以当java文件发生改动时,会被自动编译成字节码文件,此时jrebel监听到字节码文件发生了改变,就自动的把改动的字节码文件加载进JVM中,所以我们几乎可以实时的看到修改后的效果。因为只是重新加载改动的文件,不用重启整个项目,所以效率上要远高于devtools,对于配置文件xml文件中的修改还是要重启才行

3.热加载和热部署的区别
  • 热加载:在项目运行状态下,重新加载修改后的资源(用于日常开发),内存不会被清空,session也有效,但内存消耗较大。
  • 热部署:在项目运行状态下,自动重启部署整个项目(用于项目部署),但会将内存清空,session也将失效。

二.IDEA安装插件的两种方式

1.在线安装

进入setting->Plugins->Marketplace

怎么让windchill热加载java文件 java热加载插件_插件


搜索需要安装的插件

怎么让windchill热加载java文件 java热加载插件_热加载_02

2.下载安装包离线安装

我们可以通过官网下载安装包,通过本地安装包进行安装

IDEA官网地址

https://plugins.jetbrains.com/

怎么让windchill热加载java文件 java热加载插件_idea_03


怎么让windchill热加载java文件 java热加载插件_Jrebel_04

不管是在线安装还是离线安装后都会在 installed显示出安装的插件

怎么让windchill热加载java文件 java热加载插件_idea_05

三.安装并激活JRebel步骤

安装前的检查工作


  1. 检查是否打开idea的自动编译功能:settings->build->compiler->Build project automatically
  2. 怎么让windchill热加载java文件 java热加载插件_热加载_06

  3. 检查是否打开idea的【当应用运行期间可以自动编译的功能】
  • 方式一:ctrl+shift+alt+/ 选择Registry
  • 方式二:ctrl+shift+A 搜索registry,或help-》find action,搜索Registry
  1. 在IDEA中离线安装Jrebel
  • 进入IDEA官网下载jrebel离线包 https://plugins.jetbrains.com/
  • 在IDEA中一次点击 File->Settings->Plugins->Install Plugin form Disk找到要jrebel的压缩包, 如果nstalled里面有
    JRebel表示安装成功.
  • 安装好之后重启IDEA
  • 安装成功
  1. 破解JRebel
  • JRebel并非免费的插件,需要激活之后才能使用。
    首先到github上去下载一个反向代理软件,我下载的是windows x64版本。
    地址: https://github.com/ilanyu/ReverseProxy/releases/tag/v1.0
    下载版本:ReverseProxy_windows_amd64.exe

    下载内容如下:
  1. 打开此软件后会将本地的80端口,代理到 IDEA 的http://idea.lanyus.com:80上 (一定要打开,否则无法激活!!!)

3.在IDEA中一次点击 File->Settings->JRebel并找到激活界面,点击change liense进入的激活界面

怎么让windchill热加载java文件 java热加载插件_idea_07


4. 选择JRebel activated中的 connect to online licensing service

  • 第一行输入 http://127.0.0.1:8888/d3545f42-7b88-4a77-a2da-5242c46d4bc2
  • 第二行输入正确的邮箱格式,例如: test@123.com 提示:d3545f42-7b88-4a77-a2da-5242c46d4bc2为UUID,可以自己生成,并且必须是UUID才能通过验证
    UUID生成网站: https://www.guidgen.com/ , 用于拼接到 http://127.0.0.1:8888/ 后面
  • 再点击以下change liense按钮验证激活

  • 激活成功
  • 怎么让windchill热加载java文件 java热加载插件_热部署_08



  1. JRebel设置为offline(离线)模式 点一下work offline
  2. 怎么让windchill热加载java文件 java热加载插件_Jrebel_09


  1. 设置离线模式成功,如果离线模式到期。可以打开破解软件,再点击renew offline seat即可刷新离线时间
  2. 怎么让windchill热加载java文件 java热加载插件_热部署_10


四.项目部署

生成rebel.xml文件
  • 项目初次使用,需要先生成rebel.xml文件
  • 对要进行热加载的项目,后面打上勾,就会发现项目中多了个rebel.xml文件,这是JRebel的配置文件,里面会自动配置JRebel要监控的文件目录。
  • 如果是jar文件,如springBoot项目, rebel.xml 则出现在项目根文件夹中。
  • 如果是war文件,如SSM项目,rebel.xml将出现在WEB-INF / classes文件夹中。
1.tomcat项目

怎么让windchill热加载java文件 java热加载插件_插件_11

怎么让windchill热加载java文件 java热加载插件_idea_12

2.springBoot项目
  • 项目初次使用,需要先生成rebel.xml文件
3.项目的启动与运行效果
  1. 普通web项目与Spring boot的启动方式一致
  2. 运行效果
  • 启动时会输出离线信息
  • 修改文件时会输出reloading信息
  • 控制台当出现JRebel: Reloading class xxx字样的时候,说明JRebel热加载完成,就可以查看修改后的效果了。
  • 如果嫌JRebel的自动热加载慢,可以ctrl+F9(Build Project)一下,触发热加载,就能立马热加载成功。赶紧动手试试吧!

怎么让windchill热加载java文件 java热加载插件_Jrebel_13

五.其他热加载的方式

  1. springBoot环境下,可用devTools,但不如JRebel好。
  2. 以debug模式启动项目,每次修改完重新ctrl+F9编译一下,有时候也有效。