[JarEditor]一款无需解压直接编辑jar包的IDEA插件
前言#
IDEA 自带的反编译插件能打开 jar 反编译 class,遗憾的是不能编辑 class,有的时候我们需要修改 jar 内 class,需要解压 -> 反编译 class-> 然后新建.java-> 修改代码 -> 再编译 -> 最后打包 jar。我敢说中间的过程你肯定不是一气呵成的,如果 jar 有依赖还要花时间去排查,打包的时候还需要注意编译 jdk 的版本,有的命令忘了的话还需要查手册,其实基本上全是体力活。
我翻遍了 IDEA 插件市场并没有找到合适的直接编辑 jar 的插件,于是我打算简单花点时间写一个这样的插件,可以实现无需解压直接编辑 jar 内的文件。
功能介绍#
首先 IDEA 可以反编译 jar,在 jar 内的 class 是可以直接打开看到反编译代码的,外部文件可以通过 File->Project Structure->Libraries 添加依赖然后反编译 jar。
使用介绍#
首先在插件市场安装插件 JarEditor
然后可以在.class 反编译文件中看到一个切换到 Jar Editor 的 tab 页
点击 Jar Editor 后可以直接对反编译的代码进行修改,修改完之后点击 Save/Compile 会编译当前修改的 java 内容并保存,然后点击 Build Jar 即可将编译保存的 class 文件写入到 Jar 包内。
这样编辑一个 Jar 包内 class 文件一气呵成无需解压也无需去敲命令。
修改 jar 包内的资源文件也是支持的,流程和 class 文件是一样的,也是修改完要保存,然后再 Build Jar 即可。
在 jar 包的工程展示图,任意文件右键,可以看到 JarEditor 的 New 和 Delete 操作,可以新增文件和删除文件
一些机制#
- 编译依赖的 JDK 是项目工程的 JDK,可以选择编译的 class 目标版本,默认和 jar 包的 class 版本保持一致
- 编译 java 的时候依赖的 classpath 就是工程项目的依赖,如果依赖包找不到可以添加依赖
- Save/Compile 会将修改的文件保存到 jar 包所在目录的 jar_edit 子目录下,Build Jar 会把会 jar_edit 目录的文件增量写入 jar,最后再删除这个目录
总结#
此 IDEA 插件 JarEditor 可无需解压直接编辑 jar 包内 class 和资源文件,感兴趣的朋友可以去试试。
源码地址:github.com/Liubsyy/JarEditor
依赖 IDEA 最低版本为 IDEA2020.3,大于等于这个版本均可安装使用。
欢迎交流!
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: