[jareditor]一款无需解压直接编辑jar包的idea插件 | java 技术论坛-380玩彩网官网入口

前言

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和资源文件,感兴趣的朋友可以去试试。

源码地址:

依赖idea最低版本为idea2020.3,大于等于这个版本均可安装使用。

欢迎交流!

本作品采用《cc 协议》,转载必须注明作者和本文链接
讨论数量: 2

相当于直接修改java的代码吗?

6个月前
(楼主) 5个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
1
收藏
1
排名:3533
访问:53
博客标签
社区赞助商
网站地图