⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 码问 「青苗」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

1. 痛点:改个 JAR 里的文件有多麻烦?

线上一个第三方 JAR 包里的配置写死了错误的值,你需要紧急修复。传统做法是什么?解压 → 找到文件 → 修改 → 重新打包 → 替换部署。五步操作,中间还可能因为目录结构搞错导致 JAR 损坏。改一个字符串,折腾半小时,这谁受得了?

更常见的场景:调试时想临时改个三方库的 class 看看效果,结果光是解压 + 反编译 + 重新编译 + 打回去这套流程,热情就已经消耗殆尽了。

JarEditor 这个 IDEA 插件,把上面的流程压缩到了”打开 → 改 → 保存”三步。

2. JarEditor:直接在 IDEA 里改 JAR

插件地址:https://plugins.jetbrains.com/plugin/24397-jareditor

JarEditor 的核心价值就一句话:让你像编辑普通项目文件一样编辑 JAR 包内的任何文件。不用解压,不用命令行,不用来回倒腾——在 IDEA 界面里直接搞定。

支持 class 文件、资源文件、SpringBoot fat jar、Kotlin、source jar,覆盖了日常开发中你会遇到的几乎所有 JAR 类型。

3. 核心功能一览

  • 直接编辑 JAR 包内的 class / resource 文件,零解压
  • 文件管理:添加、删除、重命名 JAR 包内的文件和文件夹
  • 剪贴板操作:支持从剪贴板粘贴文件到 JAR 内,也能把 JAR 内文件复制出来
  • 全文搜索:搜索 JAR 包内容,class 文件会基于反编译结果搜索
  • SpringBoot JAR 支持:fat jar 也能直接编辑
  • source jar 支持:可编辑,也可导出

4. 实战:三步改完一个 Class

第一步:打开 JAR 内的文件。 安装插件后,打开任意 .class 反编译文件,顶部会多出一个 Jar Editor tab 页,点击切换即可进入编辑模式。

外部 JAR 怎么打开?File → Project Structure → Libraries → Add Library,添加后就能在项目视图中看到反编译内容。

第二步:修改并编译。 改完代码后,点击 Save(Compile),插件会自动编译并保存你的修改。

第三步:写入 JAR。 点击 Build Jar,编译好的 class 文件会增量写入原 JAR 包。整个过程不到 30 秒。

资源文件(properties、xml 等)的修改流程完全一样,改完直接保存即可。

5. 进阶操作:文件管理与搜索

在 JAR 包的项目视图中右键,可以看到 JarEditor → New / Delete 等操作菜单,支持在 JAR 内直接增删改查文件。

点击 Search 图标可以全文搜索 JAR 包内容。对于 class 文件,搜索基于反编译后的源码进行,相当于在整个 JAR 里做全局 grep。

6. 编译细节:JDK 版本与依赖

几个需要注意的点:

  • 编译用的 JDK 取自你 IDEA 的 SDK 列表,可以手动选择目标版本
  • classpath 依赖 来自项目的 Libraries 配置。如果编译报找不到类,检查一下依赖是否齐全
  • Save(Compile) 会先将修改保存到 JAR 所在目录下的 jar_edit_out 临时目录,Build Jar 再将改动增量写入 JAR,最后自动清理临时文件

选择 SDK Default 时,对应的 JDK 版本如下:

IDEA 版本 对应 JDK
IDEA 2020.3 - IDEA 2022.1 JDK 11
IDEA 2022.2 - IDEA 2024.1 JDK 17
IDEA 2024.2 及更高版本 JDK 21

说句实在话:这个插件不会是你每天都用的工具,但在需要的时候,它能帮你省下的时间和心智消耗是实打实的。收藏备用,关键时刻救命。

文章目录
  1. 1. 1. 痛点:改个 JAR 里的文件有多麻烦?
  2. 2. 2. JarEditor:直接在 IDEA 里改 JAR
  3. 3. 3. 核心功能一览
  4. 4. 4. 实战:三步改完一个 Class
  5. 5. 5. 进阶操作:文件管理与搜索
  6. 6. 6. 编译细节:JDK 版本与依赖