jar拆包与一键替换class文件工具

问题

spring打包, 一般会把依赖打包到一个jar文件中. 这就留造成打包后的文件提交很大, 往往在80M以上.

每次修改一点点代码, 都要发送大体积的文件给客户. 不太方便. 很麻烦.

如果能在远程中直接对jar拆包. 一键替换其中的.class文件, 之后就只发送class文件, 那么效率将大大提高. 可就太方便了.

需求

三步. jar解压拆包. 获取当前目录的.class名字, 根据名字去遍历拆包后的文件夹, 替换源文件. 再打包.

拆包和打包. jvm 原生提供一个命令jar xf, 经过测试不太稳定. 很拉胯.

偶然发现winrar居然可以. 遂封装成工具.

方案

  1. 停止jar服务. 保证操作的jar不被占用.

  2. 把.class文件(支持多个). 放在jar同级目录.

  3. 点击”拆包”, 会把当前目录唯一的jar解压拆包.

  4. 点击”替换”, 自动把当前目录的所有.class根据名字去拆包后的cache文件夹中找. 找到后替换.

  5. 所有class替换完成后. 会自动打包成jar. 名字和原来的一样.

  • 只会遍历拆包后的/cache/BOOT-INF 和 根目录/cache/META-INF.

演示