在写 JavaWeb 项目的时候,需要在注册界面加上验证码功能,使用的是谷歌的 kaptcha-2.32,但在配置时候出现找不到依赖支持的问题,原因就是 Tomcat-10.0 之后的的 servlet-api 中的包名从 javax
更新成 jakarta
,名不一样自然找不到,去官网一看,15 年之后就没更新过,一冲动直接去把源码改了,这里以小见大记录一下如何修改 jar 包的源码
- 在 IDEA 中,jar 包中的文件都是 read-only(只读模式),而且 jar 包的只读模式是不能更改的
- 大部分第三位 jar 包都是有官网和开源地址的,就像我使用的 kaptcha-2.32,如果有源码就直接修改可以(无法获得源码,需要用反编译工具反编译)
- 直接将下载的源码在 IDE 中打开,对需要的类进行修改(如果有错误,可以根据导包路径加入所依赖的包)
- 编译成
.class
文件,将 jar 包解压成文件夹,将修改编译的.class
文件进行替换,压缩成 zip 文件夹,将后缀名从 .zip 改成 .jar