java.lang.RuntimeException: error: unhandled character set ‘utf8mb3‘,修改jar包中的class文件,并重新编译打包

        本文以maxwell框架与mysql8的编码冲突为例,记录修改jar包中文件中的class文件,并在修改后重新编译打包。

(1)找到冲突包以及类:

        首先找到maxwell框架中哪个jar包中的哪个class文件与mysql8有编码冲突问题

        经过各种百度确定是StringColumnDef.class冲突,报错信息为:

java.lang.RuntimeException: error: unhandled character set 'utf8mb3'
        at com.zendesk.maxwell.schema.columndef.StringColumnDef.charsetForCharset(StringColumnDef.java:61)

        class类的路径:com.zendesk.maxwell.schema.columndef.StringColumnDef

(2)IDEA新建一个maven工程,然后导入class类所在的jar包

        file->Project Structure->Libraries->+>Java->jar包

(3)修改class类

        在maven项目中新建一个跟待修改lass文件一样路径的package和Java文件,把待修改的class文件内容复制到新建的Java文件中,然后在新建的java文件中修改内容

(4)解决内容复制到新的java文件后import 错误

        通过在pom.xml中导入依赖,具体形式可以借鉴jar包中的pom.xml,只导入需要的,如果分不清需要哪个,直接将原jar包中的依赖全部导入

 (5)修改完成后,选中修改的文件,右键 Build Module 'untitled1',然后在项目中找到这个路径下的class文件,就会出现target目录

 (6)复制class文件并替换之前解压后的class文件

 (7)重新编译打jar包

        在文件目录jar11(maxwell-1.29.2)执行cmd,在执行命令

jar cfm maxwell-1.29.2.jar C:\Users\wht\Desktop\jar11\META_INF\MANIFEST.MF -C C:\Users\wht\Desktop\jar11\

        打包完成后就会形成一个新的jar包

(8)执行完成后,会生成一个新的jar,把新的jar替换之前项目中的jar,然后重启项目打断点进行调试即可

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值