开源直接编辑 JAR 文件的 IDEA 插件 JarEditor

👉 这是一个或许对你有用 的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:

👉这是一个或许对你有用的开源项目

国产Star破10w的开源项目,前端包括管理后台、微信小程序,后端支持单体、微服务架构

RBAC权限、数据权限、SaaS多租户、商城 、支付、工作流、大屏报表、ERP、CRMAI大模型、IoT物联网等功能:

【国内首批】支持 JDK17/21+SpringBoot3、JDK8/11+Spring Boot2双版本


改个 JAR 里的文件,传统做法是什么?解压 → 找文件 → 改 → 重新打包 → 替换部署 ,五步操作,中间还可能因为目录结构搞错导致 JAR 损坏。改一个字符串,折腾半小时------这流程属实反人类。

JarEditor 这个 IDEA 插件,直接把流程压缩到**"打开 → 改 → 保存"三步** 。

开源地址:https://github.com/Liubsyy/JarEditor

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

1. 它能干什么?

一句话:像编辑普通项目文件一样编辑 JAR 包内的任何文件 。不用解压,不用命令行,不用来回倒腾。

核心能力:

  • 直接编辑 class 文件和资源文件(properties、xml 等),零解压

  • 文件管理 :在 JAR 内直接新增、删除、重命名文件和目录

  • 剪贴板操作 :从外部粘贴文件进 JAR,或把 JAR 内文件复制出来

  • 全文搜索 :搜索 JAR 包内容,class 文件基于反编译结果搜索,相当于 JAR 级别的全局 grep

  • SpringBoot fat jar 支持 :嵌套 JAR 也能直接编辑

  • Kotlinsource jar 均支持

  • 字节码修改工具 :混淆 JAR 编译不过?用 Javassist 直接改字节码

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

2. 三步改完一个 Class

第一步:打开。 安装插件后,打开任意 .class 反编译文件,顶部会多出一个 Jar Editor tab 页,点击切换即可进入编辑模式。外部 JAR 通过 File → Project Structure → Libraries → Add Library 添加即可。

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

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

资源文件的修改流程完全相同,只是不需要勾选编译选项。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

3. 进阶:文件管理与搜索

在 JAR 包的项目视图中右键,选择 JarEditor → New / Delete / Rename 等操作菜单,可以在 JAR 内直接增删改文件。支持多选删除,重命名即时生效。

搜索能力 也值得一提:点击工具栏的搜索图标,输入关键词即可全文检索 JAR 内容。class 文件的搜索基于反编译结果,普通文件直接匹配文本------定位问题时非常高效。

4. 混淆 JAR 怎么办?

普通编译校验非常严格,混淆后变量名全是 a、b、c、d 的代码,反编译后再编译大概率报错。JarEditor 提供了 Class bytes tool ,集成 Javassist,可以用接近原生 Java 代码的风格直接修改字节码,绕过编译器的严格校验。

注意 :Javassist 语法和原生 Java 有区别------不支持泛型、增强 for 循环、lambda 等高级特性。但对于临时补丁来说,够用了。

5. 编译细节

几个容易踩坑的点:

  • 编译 JDK 取自 IDEA 的 SDK 列表,可手动选择目标版本

  • classpath 依赖 来自项目的 Libraries 配置,编译报找不到类就检查依赖

  • Save 先将改动暂存到 JAR 同级的临时目录,Build Jar 再增量写入并自动清理

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

IDEA 版本 对应 JDK
2020.3 - 2022.1 JDK 11
2022.2 - 2024.1 JDK 17
2024.2+ JDK 21

说句实在话 :这个插件不是你每天都会用的工具,但在需要紧急热修复第三方 JAR、或者调试时临时改个三方库看效果的时候,它能省下的时间是实打实的。收藏备用,关键时刻救命。


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,"长按 "或"扫描"下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

go 复制代码
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)