返回目录
开源项目开发者工具类新手

JarEditor:无需解压即可直接编辑修改 jar 包内文件的 IDEA 插件

JarEditor 是一款 JetBrains IDEA 插件,可在不解压的前提下直接编辑、新增、删除、重命名、搜索 jar 包内的 class 与资源文件,支持 SpringBoot jar/嵌套 jar/war/ear/zip/aar 与 Kotlin,并提供 Javassist、VisualClassBytes 字节码工具以及 Fernflower/CFR/Procyon/Jadx 反编译器集成。

0 次阅读2026/09/15 发布
JarEditor:无需解压即可直接编辑修改 jar 包内文件的 IDEA 插件 来源图片

社区作者 · zZz

它解决什么问题

JarEditor 是面向 JetBrains IDEA 的插件,目标是让开发者无需解压即可直接修改 jar 包内的文件,包括 class 文件和资源文件。插件市场地址为 https://plugins.jetbrains.com/plugin/24397-jareditor。项目为 JetBrains 插件,如果使用 VSCode,可从 VSCode 扩展市场安装对应版本,详见 https://github.com/Liubsyy/jar-editor-vscode 。

主要功能(Features):

  1. 无需解压直接编辑 jar 内的 class/资源文件;
  1. 在 jar 中新增/删除/重命名文件与目录;
  1. 搜索 jar 包内容;
  1. 从剪贴板复制/粘贴文件与目录;
  1. 支持 SpringBoot jar、嵌套 jar、war、ear、zip、aar;
  1. 支持 Kotlin;
  1. 导出源码 jar;
  1. 支持 class 字节码工具:Javassist、VisualClassBytes;
  1. 支持反编译器:Fernflower、CFR、Procyon、Jadx。

使用流程概览(Quick start):安装插件(IDEA 至少 2020.3)后,在 .class 反编译文件中可以看到切换到 Jar Editor 的标签页(配图 4 为主界面示意)。外部 jar 通过 File->Project Structure->Libraries->Add Library 添加后即可看到反编译后的 jar;嵌套 jar 则右键 nested jar->JarEditor->Structure->Expand Nested Jar 展开。

新优化点:双击 JAR 文件或嵌套 JAR 文件即可展开 jar 内容。修改完成后点击 Save(Compile) 编译并保存当前修改的 java 内容,最后点击 Build Jar 将编译保存后的 class 文件写入 Jar 包。jar 包内的资源文件同样支持修改。配图 5 为演示动图。

Class bytes tool(类字节码工具):对于混淆过的 jar,反编译结果不理想,此时可以用工具直接修改字节码。点击 Class bytes tool 图标选择工具(配图 6、配图 7):

  • Javassist:可修改/新增/删除字段、方法、构造方法、静态代码块(含内部类);
  • Visual ClassBytes:基于 ASM 和 BCEL 的 class 字节码编辑器。

JarEditor 的其他操作:在 jar 包的项目视图中右键可以看到 JarEditor->New/Delete 等操作,可进行新增/删除/重命名/复制/粘贴/导出/备份文件(配图 8)。点击 Search 图标可搜索 jar 包内容,如果是 class jar,会基于反编译后的内容进行搜索(配图 9)。配图 1 为项目 logo,配图 2 为 HelloGitHub Featured 标识。

部分机制(Some mechanisms):

  • 编译依赖的 JDK 来自你的 SDK 列表,可以选择 SDK 以及编译后 class 的目标版本;
  • 编译 java 时依赖的 classpath 是项目的 Libraries 依赖,如果找不到依赖包,可以添加 Libraries(File->Project Structure->Libraries);
  • Save(Compile) 会将修改的文件保存到 jar 包所在目录的子目录 jar_edit_out 中,Build Jar 会把修改的文件增量写入 jar,最后删除该目录。

SDK Default 版本对照(当编译并选择 SDK Default 时,使用 JetBrains 集成的运行时 JDK(JBR);如果不选择 SDK Default,则使用用户自行安装的具体 JDK):

  • IDEA 2020.3 - IDEA 2022.1:JBR JDK11
  • IDEA 2022.2 - IDEA 2024.1:JBR JDK17
  • IDEA 2024.2 及以后:JBR JDK21

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

一、准备环境

  • 需要 JetBrains IDEA,版本至少 2020.3。
  • 如需编译修改后的 java 代码,需在 IDEA 的 SDK 列表中配置好 JDK(可选择 SDK 与编译后 class 的目标版本)。
  • 编译时依赖的 classpath 为项目的 Libraries 依赖,如缺少依赖包,需先通过 File->Project Structure->Libraries 添加。

二、安装插件

  1. 从插件市场安装 JarEditor 插件,市场地址:https://plugins.jetbrains.com/plugin/24397-jareditor (英文说明为 First install the plugin JarEditor from marketplace, IDEA at least version 2020.3)。安装步骤可参考配图 3。
  1. 若使用 VSCode,可从 VSCode 扩展市场安装,详见 https://github.com/Liubsyy/jar-editor-vscode 。

三、打开并编辑 jar

  1. 安装完成后,在 .class 反编译文件中可以看到一个切换到 Jar Editor 的标签页(配图 4)。
  1. 外部 jar:依次点击 File->Project Structure->Libraries->Add Library,之后即可看到反编译后的 jar。
  1. 嵌套 jar:右键 nested jar->JarEditor->Structure->Expand Nested Jar。
  1. 新优化:直接双击一个 JAR 文件或嵌套 JAR 文件即可展开 jar 内容。

四、编译与写回

  1. 修改 java 内容后,点击 Save(Compile),编译并保存当前修改的 java 内容。
  1. 最后点击 Build Jar,将编译保存后的 class 文件写入 Jar 包。
  1. jar 包内的资源文件同样支持直接修改。
  1. 机制说明:Save(Compile) 会把修改的文件保存到 jar 包所在目录的子目录 jar_edit_out;Build Jar 会增量写入修改文件到 jar,最后删除该目录。

五、使用类字节码工具(针对混淆 jar,反编译结果不理想时)

  1. 点击 Class bytes tool 图标选择工具(配图 6、配图 7)。
  1. Javassist:可修改/新增/删除字段、方法、构造方法、静态代码块(包含内部类)。
  1. Visual ClassBytes:基于 ASM 和 BCEL 的 class 字节码编辑器。

六、其他操作

  1. 在 jar 包的项目视图中右键,可出现 JarEditor->New/Delete 等操作,支持新增/删除/重命名/复制/粘贴/导出/备份文件(配图 8)。
  1. 点击 Search 图标可搜索 jar 包内容;如果是 class jar,会基于反编译后的内容进行搜索(配图 9)。

七、常见问题

  1. 编译时找不到依赖包:classpath 取自项目的 Libraries 依赖,请通过 File->Project Structure->Libraries 添加对应依赖。
  1. 混淆 jar 反编译结果不理想:使用 Class bytes tool,通过 Javassist 或 Visual ClassBytes 直接修改字节码。
  1. 编译使用的 JDK 不确定:编译依赖的 JDK 来自 SDK 列表,可选择 SDK 与目标版本;选择 SDK Default 时使用 JetBrains 集成的运行时 JDK(JBR),否则使用用户自行安装的 JDK。SDK Default 版本对照:IDEA 2020.3-2022.1 为 JBR JDK11,IDEA 2022.2-2024.1 为 JBR JDK17,IDEA 2024.2 及以后为 JBR JDK21。
  1. 修改文件去哪了:Save(Compile) 会先保存到 jar 同目录下的 jar_edit_out 子目录,Build Jar 才增量写入 jar 并删除该目录。

来源教程配图

教程配图
配图 1 · 教程配图查看原图
Featured|HelloGitHub
配图 2 · Featured|HelloGitHub查看原图
教程配图
配图 3 · 教程配图查看原图
教程配图
配图 4 · 教程配图查看原图
教程配图
配图 5 · 教程配图查看原图
教程配图
配图 6 · 教程配图查看原图
教程配图
配图 7 · 教程配图查看原图
教程配图
配图 8 · 教程配图查看原图

适用场景

在 IDEA 中不解压直接修改 jar 包内的 class 文件并重新构建
替换或修改 jar 包内的资源文件(如配置文件
properties 等)
在 jar 包中新增
删除
重命名
复制
粘贴文件或目录
按反编译内容搜索 jar 包内的类与方法内容
处理 SpringBoot jar
嵌套 jar
war